websphere 7.0部署在tomcat 7.0中的JAXWS webservice无法正常工作

时间:2011-09-22 18:10:50

标签: java web-services java-ee tomcat tomcat7

朋友:

我有一个在WebSphere 7.0中开发的JAXWS Web服务。它在那里工作。 Websphere中的堆栈是Axis2.0

我写了一个POJO Java类,用@WebService注释注释然后我做了一个wsgen来生成必要的工件并创建war文件。

重要的是web.xml中没有任何servlet或者定义了侦听器。 查看plaincopy到clipboardprint?

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         id="WebApp_ID" version="2.5">
  <display-name>CMSExternalWebServices</display-name>
  <servlet>
    <servlet-name>Log4JControl</servlet-name>
    <servlet-class>it.openutils.log4j.Log4jConfigurationServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Log4JControl</servlet-name>
    <url-pattern>/Log4JControl/*</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

然而,当我将war文件部署到Tomcat 7.0,然后将axis2 jar复制到WEB-INF \ lib文件夹时。

当我重新启动Tomcat时,WebService不起作用。

我很好奇的是,为什么Websphere7在启动时在没有任何entires的情况下在web.xml中部署WebService但是Tomcat拒绝这样做?

我错过了什么?

-Narahari

3 个答案:

答案 0 :(得分:0)

WebSphere在启动期间在类路径中搜索@WebService注释,没有必要在web.xml中包含任何条目,这符合Java EE 6规范。

由于Tomcat不完全支持Java EE 6(它只是'servlet引擎'),因此必须定义一个触发器以使Axis2加载您的Web服务。据我所知,您必须在web.xml中定义每个Web服务才能在Tomcat上运行(我可能错过了一些增强功能)。

答案 1 :(得分:0)

取决于你如何尝试部署它,但我认为你假设Tomcat的工作方式就像一个完整的Java EE服务器,它不是。

如果您使用轴jar并将其作为自己的Web应用程序,应该工作(请参阅here

我不知道Tomcat会对@WebService注释做任何事情,因为不是完整的Java EE服务器。请参阅here,尽管这与Tomcat 6有关,而不是Tomcat 7。

另请参阅this,这让我相信可能支持它,但看起来它仍在使用Metro。

答案 2 :(得分:0)

我想我以前见过类似的事情(即网络服务没有在web.xml文件中列出)。 WEB-INFMETA-INF中是否有ibm-something-something.xml或类似的其他XML文件?从内存开始,这就是我在Rational Application Developer中开发并部署到WAS 7时的信息。