eclipse怎么把项目发布到tomcat中?
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仍会岸配置去加载。
0条评论