tomcat去掉项目名称
2015-12-02 21:59
731 查看
需求:
把发布到Tomcat下的web项目,访问路径去掉项目名称
问题背景:
以前的.net些的WebService,现在改用java来写了。已经把wsdl搞的基本一致了,但是由于原webservice发布到iis网站的根目录了,所以访问的时候也就没有虚拟目录的名字。但是java写的WebService,放到Tomcat下的时候,默认会带上项目的名称。就多了这么一段:
如原来的wsdl为:http://localhost:8080/SearchReqService.asmx?wsdl
现在的wsdl为:http://localhost:8080/Interface/SearchReqService.asmx?wsdl
而且wsdl地址事先约定好了,不能改变,不然就牵扯到第三方改动、
实现方式及原理:
方式一:
原理:Tomcat的默认根目录是ROOT,实际上ROOT这个项目在实际生产环境是没有用的,所以我们可以用我们的项目覆盖ROOT项目
操作过程:
1.删除ROOT下所有文件及文件夹
2.把我们项目的war包解压后,项目目录下的所有文件和子目录都拷贝到ROOT目录下即可
或者有更狠的一招:直接删掉ROOT目录,然后把我们的项目打包名称改成ROOT.war,放到webapps下就行
方式二:
原理:Tomcat本身可以配置虚拟目录。方法就是在Server.xml中<Engine><Host>节点下加入Context信息。如我们可以配置<Context path="/abc" docBase="D:\app\abc" ... />,那我们可以通过地址http://localhost:8080/abc来访问我们放在D:\app\下面的abc项目。我们可以把这个path="/abc"修改为path=""。意思就是把abc映射到根目录,访问路径就会变成http://localhost:8080/。
操作过程:
按照配置虚拟目录的方式,在<Engine><Host>下添加一个Context节点,具体配置如下:
Xml代码
![](http://ajita.iteye.com/images/icon_star.png)
<Engine name="Catalina" defaultHost="localhost"...>
...
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="Interface" reloadable="true" />
<!--注:我这里使用的是相对路径,Interface项目是放在Tomcat的webapps目录下的,当然也可以改为绝对路径-->
...
</Host>
...
</Engine>
访问方式就可以用http://localhost:8080/SearchReqService.asmx?wsdl了
如果用虚拟目录的方式,地址http://localhost:8080/Interface/SearchReqService.asmx?wsdl也可以访问。
同样的方式,我们可以为path指定不同的路径,解决访问路径区别项目名称的需要。
其它,去掉访问的端口号8080.就是利用了HTTP请求访问的端口默认是80的方式实现的,iis也一样。我们只用把Tomcat的HTTP监听端口号改为80(修改<Connector port="8080" protocol="HTTP/1.1"这里的端口号为80)即可。
把发布到Tomcat下的web项目,访问路径去掉项目名称
问题背景:
以前的.net些的WebService,现在改用java来写了。已经把wsdl搞的基本一致了,但是由于原webservice发布到iis网站的根目录了,所以访问的时候也就没有虚拟目录的名字。但是java写的WebService,放到Tomcat下的时候,默认会带上项目的名称。就多了这么一段:
如原来的wsdl为:http://localhost:8080/SearchReqService.asmx?wsdl
现在的wsdl为:http://localhost:8080/Interface/SearchReqService.asmx?wsdl
而且wsdl地址事先约定好了,不能改变,不然就牵扯到第三方改动、
实现方式及原理:
方式一:
原理:Tomcat的默认根目录是ROOT,实际上ROOT这个项目在实际生产环境是没有用的,所以我们可以用我们的项目覆盖ROOT项目
操作过程:
1.删除ROOT下所有文件及文件夹
2.把我们项目的war包解压后,项目目录下的所有文件和子目录都拷贝到ROOT目录下即可
或者有更狠的一招:直接删掉ROOT目录,然后把我们的项目打包名称改成ROOT.war,放到webapps下就行
方式二:
原理:Tomcat本身可以配置虚拟目录。方法就是在Server.xml中<Engine><Host>节点下加入Context信息。如我们可以配置<Context path="/abc" docBase="D:\app\abc" ... />,那我们可以通过地址http://localhost:8080/abc来访问我们放在D:\app\下面的abc项目。我们可以把这个path="/abc"修改为path=""。意思就是把abc映射到根目录,访问路径就会变成http://localhost:8080/。
操作过程:
按照配置虚拟目录的方式,在<Engine><Host>下添加一个Context节点,具体配置如下:
Xml代码
![](http://ajita.iteye.com/images/icon_star.png)
<Engine name="Catalina" defaultHost="localhost"...>
...
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="Interface" reloadable="true" />
<!--注:我这里使用的是相对路径,Interface项目是放在Tomcat的webapps目录下的,当然也可以改为绝对路径-->
...
</Host>
...
</Engine>
访问方式就可以用http://localhost:8080/SearchReqService.asmx?wsdl了
如果用虚拟目录的方式,地址http://localhost:8080/Interface/SearchReqService.asmx?wsdl也可以访问。
同样的方式,我们可以为path指定不同的路径,解决访问路径区别项目名称的需要。
其它,去掉访问的端口号8080.就是利用了HTTP请求访问的端口默认是80的方式实现的,iis也一样。我们只用把Tomcat的HTTP监听端口号改为80(修改<Connector port="8080" protocol="HTTP/1.1"这里的端口号为80)即可。
相关文章推荐
- 配置(更改)tomcat的端口
- tomcat服务器发布网站的方式小结
- myeclipse中tomcat配置步骤
- Linxu安装Tomcat与Jdk并卸载自带OpenJdk
- Tomcat配置JMX远程监控(Windown7 Linxu)
- 将tomcat注册为windows服务
- Tomcat服务器安装与环境配置
- Apache CXF实现Web Service(4)——Tomcat容器和Spring实现JAX-RS(RESTful) web service
- 修改方法内容,不重启tomcat服务器
- Tomcat配置JMX远程监控 Win7 Linxu
- 如何在tomcat上面直接输入ip/localhost来访问web项目
- Apache CXF实现Web Service(3)——Tomcat容器和不借助Spring的普通Servlet实现JAX-RS(RESTful) web service
- Linxu安装Tomcat与Jdk
- 使用tomcat和servlet,建一個炒雞…
- Tomcat
- JMeter监控Tomcat性能 【转载】
- 使用Apache Tomcat Maven插件部署运行 Web 项目
- MyEclipse2015各种好用的自定义配置(SVN, JDK, Maven, Tomcat, 自动补全, UTF-8, 字体等)
- MyEclipse2015配置Tomcat方法
- JTSL在Tomcat6和Tomcat7中的使用区别