eclipse怎么把项目发布到tomcat中?

eclipse怎么把项目发布到tomcat中?,第1张

1、在Eclipse中添加Tomcat服务器。 

2、此时Eclipse将自动生成Servers工程。

3、将web工程发布至tomcat。 

4、在Servers视图,Remove删除刚刚发布的项目。 

5、打开Tomcat服务器配置项。 

6、修改以下两个配置项,Tomcat保持启动状态,否则Server Locations一栏变灰色,不可用。

7、重新发布项目即可,然后启动Tomcat服务器,就可以直接在浏览器输入地址,而不用借助eclipse。

扩展资料

Eclipse配置Tomcat的注意事项

1、在Eclipse中新建tomcat的Server后,先不要添加项目,点Finish。然后再右击server  open打开Servers窗口先配置下相关参数。

2、server locations默认情况下Tocmat把我们部署的项目放在了workspaces下面,而不是像Myeclipse默认的那样放在tomcat的安装路径下,这勾选成了Use Tomcat installation,即部署在Tomcat安装目录下。

3、在Server Options里,选择Publish module contexts to separate XML files。如果不选一般会报错did not find a matching property。

4、在Publishing中可以设置是否自动发布。如果项目比较大,可能启动时间较长,但是tomcat设置了超时时间,这个时候我们就需要把超时时间改长一些。在Timeouts更改。在ports可以更改端口号。

方法如下:

点击myeclipse菜单栏中的window--

show

view

--

other

--

找到servers

点击OK

就可以显示servers选项卡了。如下图:

myeclipse有自带的tomcat,然后在servers选项卡中右键tomcat,选择add

 deployment

然后在弹出框中选择要发布的web项目,

就可以在tomcat中发布web项目了

详细介绍了在tomcat容器中创建、发布和访问CXF服务的步骤和各种方法。

一、服务器端

1.添加CXF包

1)基本包:

commons-logging-111jar

geronimo-activation_11_spec-102jar

geronimo-annotation_10_spec-111jar

geronimo-javamail_14_spec-16jar

geronimo-jaxws_21_spec-10jar

geronimo-servlet_25_spec-12jar

geronimo-stax-api_10_spec-101jar

geronimo-ws-metadata_20_spec-112jar

jaxb-api-21jar

jaxb-impl-2112jar

jetty-6121jar

jetty-util-6121jar

neethi-204jar

saaj-api-13jar

saaj-impl-132jar

wsdl4j-162jar

wstx-asl-328jar

xml-resolver-12jar

XmlSchema-145jar

2)jsf和jstl(非必要,用MyEclipse创建Web Project时会自动加入,无须再添加)

jsf-apijar

jsf-impljar

jstl-12jar

3)cxf

cxf-224jar

4)Spring jars,为XML Configuration添加Spring支持。

aopalliance-10jar

spring-core-255jar

spring-beans-255jar

spring-context-255jar

spring-web-255jar

2.服务接口及实现

1)接口类,如HelloWorldjava:

package cxftest;

import javaxjwsWebService;

@WebService

public interface HelloWorld

{

// 一个简单的方法,返回一个字符串

String say(String hello);

}

2)实现类,如HelloWorldImpljava:

package cxftest;

import javaxjwsWebService;

// WebService实现类

// 使用@WebService指向Interface定义类即可

@WebService(endpointInterface = "cxftestHelloWorld")

public class HelloWorldImpl implements HelloWorld

{

public String say(String hello)

{

return "hello " + hello;

}

}

3.服务配置

1)webxml

<xml version="10" encoding="UTF-8">

<web-app version="25"

xmlns="http://javasuncom/xml/ns/javaee"

xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"

xsi:schemaLocation="http://javasuncom/xml/ns/javaee

http://javasuncom/xml/ns/javaee/web-app_2_5xsd">

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>WEB-INF/beansxml</param-value>

</context-param>

<listener>

<listener-class>

orgspringframeworkwebcontextContextLoaderListener

</listener-class>

</listener>

<servlet>

<servlet-name>CXFServlet</servlet-name>

<servlet-class>

orgapachecxftransportservletCXFServlet

</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>CXFServlet</servlet-name>

<url-pattern>/services/</url-pattern>

</servlet-mapping>

</web-app>

2)beansxml

<xml version="10" encoding="UTF-8">

<beans xmlns="http://wwwspringframeworkorg/schema/beans"

xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"

xmlns:jaxws="http://cxfapacheorg/jaxws"

xsi:schemaLocation="

http://wwwspringframeworkorg/schema/beans http://wwwspringframeworkorg/schema/beans/spring-beansxsd

http://cxfapacheorg/jaxws http://cxfapacheorg/schemas/jaxwsxsd">

<import resource="classpath:META-INF/cxf/cxfxml" />

<import resource="classpath:META-INF/cxf/cxf-extension-soapxml" />

<import resource="classpath:META-INF/cxf/cxf-servletxml" />

<jaxws:endpoint id="webServiceHelloWorld"

address="/HelloWorld"

implementor="cxftestHelloWorldImpl"/>

</beans>

注:服务无需诸如indexjsp之类的配置,MyEclipse自动加入的可删除,对服务及配置无任何影响。

4.服务发布(到Tomcat)

方法一:通过MyEclipse发布

点击工具栏 图标,或者右键单击项目 → MyEclipse → Add and Remove Project Deployments。

方法二:使用Ant。

二、客户端

创建Web Project,执行下列步骤即可。无须设置webxml。

1.添加CXF包

针对不同的方法,需要的包不尽相同。如下面“3.服务调用”的方法三,需要如下包:

commons-logging-111jar

cxf-224jar

neethi-204jar

spring-core-255jar

spring-beans-255jar

spring-context-255jar

wsdl4j-162jar

XmlSchema-145jar

2.获取服务服务接口类(类似于C/C++中的h头文件

方法一:直接从原项目中copy

这当然是最简单的方法,也是最“难”的方法(如果服务不是自己做的,显然没法获得)。

方法二:从wsdl文档中生成。

需要先安装cxf程序包。生成步骤如下:

1) 安装cxf,设置环境变量,如:D:/Apache/apache-cxf-224;同时,PATH后加上“;%CXF_HOME%/bin”(可选)。wsdl2java的用法如下:

wsdl2java –p 包名 –d 目录名 wsdl路径

如:wsdl2java –p demoserviceclient –d e:/src htt://localhost:8080/helloWorldwsdl

-p 指定其wsdl的命名空间,也就是要生成代码的包名

-d 指定要产生代码所在目录

-client 生成客户端测试web service的代码

-server 生成服务器启动web service的代码

-impl 生成web service的实现代码

-ant 生成buildxml文件

-compile 生成代码后编译

-quient 静默模式,不输出警告与错误信息

-all 生成所有开始端点代码:types,service proxy,service interface, server mainline, client mainline, implementation object, and an Ant buildxml file

2) 执行wsdl2java批处理程序,如:

wsdl2java -p cxftest -d d:/src -server http://localhost:8080/CXFTomcat/services/ HelloWorldwsdl

3) 将java接口类导入项目。

上一步生成的java类文件很多,一般的应用中只要将说明接口的那个类文件导入项目即可,如上例生成的HelloWorldjava文件。

3.服务调用

方法一:使用jws的高层封装,如:

package cxftest;

import javaxxmlnamespaceQName;

import javaxxmlwsService;

import javaxxmlwssoapSOAPBinding;

import cxftestHelloWorld; // necessary

public final class Client {

private static final QName SERVICE_NAME

= new QName("http://testcxf/", "HelloWorld"); // 首参为接口实现类包名的反缀

private static final QName PORT_NAME

= new QName("http://testcxf/", "HelloWorldPort");

private Client() { }

public static void main(String args[]) throws Exception {

Service service = Servicecreate(SERVICE_NAME);

// Endpoint Address

String endpointAddress = "http://localhost:8080/CXFTomcat/services/HelloWorld";

// Add a port to the Service

serviceaddPort(PORT_NAME, SOAPBindingSOAP11HTTP_BINDING, endpointAddress);

HelloWorld hw = servicegetPort(HelloWorldclass);

Systemoutprintln(hwsay("World"));

}

}

方法二:使用较下层的代码更加精确的控制程序的行为,如:

package cxftest;

import orgapachecxfjaxwsJaxWsProxyFactoryBean;

import cxftestHelloWorld; // necessary

public final class Client {

private Client() { }

public static void main(String args[]) throws Exception {

JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();

factoryBeangetInInterceptors()add(new LoggingInInterceptor());(可选)

factoryBeangetOutInterceptors()add(new LoggingOutInterceptor());(可选)

factoryBeansetServiceClass(cxftestHelloWorldclass);

factoryBeansetAddress("http://localhost:8080/CXFTomcat/services/HelloWorld");

HelloWorld client = (HelloWorld)factoryBeancreate();

Systemoutprintln(clientsay("God"));

Systemexit(0);

}

}

备注:LoggingInInterceptor和LoggingOutInterceptor是日志拦截器,用于输入和输出时显示日志。使用与否并不影响程序的行为。

方法三:使用Spring,例如:

package cxftest;

import orgspringframeworkcontextsupportClassPathXmlApplicationContext;

import cxftestHelloWorld; // necessary

public final class Client {

private Client() { }

public static void main(String args[]) throws Exception {

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"cxf/test/client-beansxml"});

HelloWorld client = (HelloWorld)contextgetBean("client");

String response = clientsay("Joe");

Systemoutprintln("Response: " + response);

Systemexit(0);

}

}

注意:要想使用Spring来完成,在cxftest包中必须有client-beansxml存在,内容如下:

<xml version="10" encoding="UTF-8">

<beans xmlns="http://wwwspringframeworkorg/schema/beans"

xmlns:xsi="http://wwww3org/2001/XMLSchema-instance"

xmlns:jaxws="http://cxfapacheorg/jaxws"

xsi:schemaLocation="

http://wwwspringframeworkorg/schema/beans http://wwwspringframeworkorg/schema/beans/spring-beansxsd

http://cxfapacheorg/jaxws http://cxfapacheorg/schema/jaxwsxsd">

<bean id="client" class="cxftestHelloWorld"

factory-bean="clientFactory" factory-method="create"/>

<bean id="clientFactory" class="orgapachecxfjaxwsJaxWsProxyFactoryBean">

<property name="serviceClass" value="cxftestHelloWorld"/>

<property name="address" value="http://localhost:8080/CXFTomcat/services/HelloWorld"/>

</bean>

</beans>

4.执行

Run As Java Application

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

让我们一起学习下这个“汤姆猫”的安装过程 哈哈

Tomcat的安装可以说是非常简单的,我们选择直接下载已编译的软件包,就不自己编译安装了。安装Tomcat前必须先安装 JDK。大家可以去 oracle官网获取最新的JDK,从 Apache官网获取Tomcat。

首先我们先解压JDK和Tomcat的软件包。建议将软件安装包,源码包等放到/usr/local/src 目录中,方便管理。 # tar xf jdk-8u31-linux-x64targz # tar xf apache-tomcat-8017targz 然后将解压后的JDK和Tomcat移动到 /usr/local/ 中去,并将Tomcat命名为Tomcat8 # mv jdk180_31/ /usr/local/ # mv apache-tomcat-8017 /usr/local/tomcat8

接下来就是配置JDK的环境变量了,让系统认识JDK在哪里。我选用的做法是在 /etc/profiled/ 中添加脚本。 # vim /etc/profiled/jdk18sh 添加以下内容: JAVA_HOME=/usr/local/jdk180_31/JAVA_BIN=/usr/local/jdk180_31/bin/JRE_HOME=/usr/local/jdk180_31/jre/JRE_BIN=/usr/local/jdk180_31/jre/bin/CLASSPATH=/usr/local/jdk180_31/jre/lib:/usr/local/jdk180_31/lib:/usr/local/jdk180_31/jre/lib/charsetsjarPATH=$PATH:$JAVA_BIN:$JRE_BINexport JAVA_HOME JAVA_BIN JRE_HOME JRE_BIN PATH CLASSPATH

之后保存退出vim编辑器,并给脚本文件添加可执行权限,然后加载此脚本。 # chmod +x /etc/profiled/jdk18sh # source /etc/profiled/jdk18sh 环境变量添加成功后输入命令 java就会显示出一串这个命令的用法 接下来我们就可以进行下一步 配置Tomcat了

我们进入到 Tomcat 的安装目录下看看。其中 bin就是各脚本的路径了, 我们可以看到连 Windows的 bat批处理脚本也在其中,也就是说只要你的Windows 主机安装好JDK后也是可以使用这个 Tomcat 软件包的。 Tomcat的配置文件为 conf中的 serverxml。其中的 webapps就是发布网站的根目录。我们再看看 lib下的文件,发现都是以 jar为后缀的文件,根本不是以 so 结尾的库文件,原来Tomcat跨平台的原因在这里啊。jar 文件是交给 JVM虚拟机执行的,只要安装了 JDK的平台都可以运行。

好啦 接下来我们就该把 Tomcat 启动起来试试了,执行 /usr/local/tomcat8/bin 下的 startupsh脚本。 # /usr/local/tomcat8/bin/startupsh 它会列出一些使用的变量及路径,只要最后显示 Tomcat started就证明启动成功了。Tomcat 默认监听的是 8080端口,我们可以 netstat看一下。注意,它启动的是一个叫做 java的进程。 # netstat -anpt | grep "java" 我们看到监听的还有 8005和 8009端口,这些都有其他用处,只有 8080才是提供 HTTP服务的端口

记得要关闭 iptables或者清空 iptables规则 ,如果你会编写 iptables 豁免规则那最好不过了。对了 SElinux也顺手关闭了吧!这里只讲解如何临时关闭 iptables 和 SElinux。 我这里就手懒了,只清空了 iptables 规则: # iptables -F 如果想关闭iptables服务: # service iptables stop 临时关闭SElinux: # setenforce 0

接下来当然是用浏览器访问下我们的站点看看效果啦,因为端口默认不是80,我们就必须指定端口了。 在浏览器输入 http://服务器的IP地址:8080 如果出现了如下图所示的页面就证明成功了。

相信聪明的你已经看到 Tomcat 的 bin 目录下有个 shutdownsh了吧,不要误会成这是关机脚本,这只是关闭 Tomcat 服务的脚本。咦!还有个 configtestsh脚本,这个难道是配置文件的检查脚本?我们用这些脚本不就可以自己写个 Tomcat 的服务控制脚本了嘛。确实如此,但是 Tomcat 已经为我们提供了个服务控制脚本,就是那个 catalinash, 遗憾的是这个脚本需要我们修改的地方不少,而且还没有 restart选项。我决定还是自己写个把。 下图为自带服务控制脚本支持的参数

终于写完了,一个拥有 { start | stop | status | restart | test } 可以添加到开机自启的 Tomcat 服务控制脚本,代码如下: #!/bin/bash # # chkconfig: 235 80 20 # description: Tomcat server # Source function library /etc/rcd/initd/functions JAVA_HOME=/usr/local/jdk180_31 # JAVA_HOME CATALINA_HOME=/usr/local/tomcat8 # TOMCAT_HOME export JAVA_HOME CATALINA_HOME start() { echo "Starting Tomcat" $CATALINA_HOME/bin/startupsh if [ $ -eq 0 ]; then touch /var/lock/tomcat fi } stop() { echo "Stopping Tomcat" $CATALINA_HOME/bin/shutdownsh if [ $ -eq 0 ]; then rm -rf /var/lock/tomcat fi } restart() { stop start } status() { if [ -e /var/lock/tomcat ]; then echo "Running" else echo "Stopped" fi } case $1 in start) start ;; stop) stop ;; status) status ;; restart) restart ;; test) /usr/local/tomcat8/bin/configtestsh ;; ) echo "Usage: tomcat {start|stop|status|restart|test}" ;; esac

把脚本复制到 /etc/initd/tomcat然后添加可执行权限,然后试试添加到开机自启动吧! # chkconfig --add tomcat 取消开机自启: # chkconfig --del tomcat

现在我们再简单的看下 Tomcat的配置文件 /usr/local/tomcat8/conf/serverxml 这是用XML可扩展标记语言作为的配置文件 其中 Connector port="8080" /这项就是设置web服务的监听端口 添加 Host /Host标签就可以添加多个虚拟主机 Host 标签中 name="localhost"指定主机名,可以随意修改 appBase="webapps"这个就是网站根目录了,默认是 Tomcat 安装目录下的webapps

好了 Tomcat 就到这里了。如果觉得有用记得点收藏哦!如果想获取更多Linux教程,也可以进我的经验中心获取,欢迎一起交流 Linux 知识

首先你要明白B/S 响应机制,通过PC端或手机端 浏览器 请求Web 服务器 请求服务可以是利用Tomcat 的发布的服务,也可以是其他的中间件如:jboss,weblogic,websphere 等,它可以提供解析服务和接受来自客户端的请求。

以上是原理,然后说下你所提到的问题,如何利用手机查看自己开发的JSP页面,首先利用发布服务可以利用你提到的Tomcat 中间件搭建一个服务,确保手机和服务器再同一网段可以是局域网,也可以是互联网,然后通过服务器网段的地址进行访问。

手机和服务器再同一局域网服务器IP为:1921681103 。那么可以利用移动端在浏览器上访问地址:1921681103 此为在局域网内访问。

 服务发布在互联网上IP 为 1315511849 那么可以利用移动端在浏览器上访问地址: 1315511849  也可以通过域名解析给这个IP添加域名,然后就可以用域名进行访问。

请咨询阅读以上回答,有其他问题请追我我。

Tomcat部署发布JSP应用程序的三种方法:

  1、直接放到Webapps目录下

  Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录 下的应用。也可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特 性格式的jar包,它是将一个Web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse、 NetBeans、ant、JBuilder等。也可以用cmd 命令:jar -cvf applicationnamewar package;

  甚至可以在程序执行中打包:

  try{

  string strjavahome = systemgetproperty("javahome");

  strjavahome = strjavahomesubstring(0,strjavahomelastindexof(\\))+"\\bin\\";

  runtimegetruntime()exec("cmd /c start "+strjavahome+"jar cvf hellowar c:\\tomcat50\\webapps\\root\\");

  }

  catch(exception e){systemoutprintln(e);}

  webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的serverxml文件,找到下面内容:

  <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeloy="true" xmlValidation="falase" xmlNamespaceAware="false">

  2、在serverxml中指定

  在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在serverxml中新建Context里部署一个JSP应用程序。打开serverxml文件,在Host标签内建一个Context,内容如下。

  <Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>

  其中path是虚拟路径,docBase是JSP应用程序的物理路径,workDir是这个应用的工作目录,存放运行是生成的于这个应用相关的文件。

  其中,Host标签中的appBase也需要修改到应用程序的目录,既D:\myapp(原理可参考tomcat参数说明:http://wwwcnblogscom/ywl925/archive/2013/02/28/2936926html)

  3、创建一个Context文件

  以上两种方法,Web应用被服务器加载后都会在Tomcat的conf\catalina\localhost目录下生成一个XML文件,其内容如下:

  <Context path="/admin" docBase="${catalinahome}/server/webapps/admin" debug="0" privileged="true"></Context>

  可 以看出,文件中描述一个应用程序的Context信息,其内容和serverxml中的Context信息格式是一致的,文件名便是虚拟目录名。您可以 直接建立这样的一个xml文件,放在Tomcat的conf\catalina\localhost目录下。例子如下:

  注意:删除一个Web应用同时也要删除webapps下相应的文件夹祸serverxml中相应的Context,还要将Tomcat的conf

  \catalina\localhost目录下相应的xml文件删除。否则Tomcat仍会岸配置去加载。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » eclipse怎么把项目发布到tomcat中?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情