【问题标题】:Tomcat 6 web services is not deployed 404 errorTomcat 6 web 服务未部署 404 错误
【发布时间】:2023-03-30 18:34:01
【问题描述】:

我一直在尝试在 tomcat 上部署一个简单的 Web 服务,但没有成功,它总是返回 404 错误。

我使用了这个例子中的代码

http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/

但无法使用战争,因为我在 server.xml 中设置了上下文信息

所以我使用与 mkyong 相同的代码,但是按照上面的步骤部署它

How to manually deploy a web service on Tomcat 6?

我一直在处理它,直到 catalina.log 中不再有错误,我仍然收到 404 错误

当我查看日志时,有一些这样的消息

2013 年 2 月 26 日下午 12:17:48 com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized 信息:WSSERVLET12:JAX-WS 上下文侦听器正在初始化 2013 年 2 月 26 日下午 12:17:49 com.sun.xml.ws.transport.http.servlet.WSServletDelegate 信息:WSSERVLET14:JAX-WS servlet 初始化 2013 年 2 月 26 日 12:17:49 PM org.apache.catalina.startup.HostConfig deployDescriptor 信息:部署配置描述符 trafficschoolgirls.com.xml 2013 年 2 月 26 日 12:17:49 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized 信息:WSSERVLET12:JAX-WS 上下文侦听器正在初始化 2013 年 2 月 26 日下午 12:17:51 com.sun.xml.ws.transport.http.servlet.WSServletDelegate 信息:WSSERVLET14:JAX-WS servlet 初始化

所以我的ws设置对了吗?但是我真的不知道为什么它仍然无法正常工作,是否有任何其他日志我可以检查或我需要设置哪些地方才能让 ws 运行?我需要做任何端口设置吗?

感谢您的宝贵时间,

多莉

【问题讨论】:

    标签: tomcat deployment web jax-ws


    【解决方案1】:

    我在同一应用程序中的 Tomcat 6 中有两个 WebService。

    文件/WEB-INF/sun-jaxws.xml中有两个端点,分别是url-pattern

    <?xml version="1.0" encoding="UTF-8"?>
    <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
        <endpoint name="HtmlPageService" 
                  implementation="org.paulvargas.tools.soap.HtmlPageService" 
                  url-pattern="/HtmlPageService" />
        <endpoint name="BinaryFileService" 
                  implementation="org.paulvargas.tools.soap.BinaryFileService" 
                  url-pattern="/BinaryFileService" />
    </endpoints>
    

    而且这个url-pattern也在WSServletservlet-mapping

    <?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>soap</display-name>
     <listener>
      <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
     </listener>
     <servlet>
      <servlet-name>Service</servlet-name>
      <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
      <load-on-startup>0</load-on-startup>
     </servlet>
     <servlet-mapping>
      <servlet-name>Service</servlet-name>
      <url-pattern>/HtmlPageService</url-pattern>
      <url-pattern>/BinaryFileService</url-pattern>
     </servlet-mapping>
     <welcome-file-list>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
    </web-app>
    

    应用程序具有以下库:

    commons-io-2.4.jar
    gmbal-api-only.jar
    ha-api.jar
    jaxb-impl.jar
    jaxws-api.jar
    jaxws-rt.jar
    management-api.jar
    mimepull-1.3.jar
    policy.jar
    stax-ex.jar
    streambuffer.jar
    

    启动Tomcat的输出是

    Feb 26, 2013 7:16:58 PM org.apache.coyote.http11.Http11Protocol init
    INFO: Initializing Coyote HTTP/1.1 on http-8080
    Feb 26, 2013 7:16:58 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 438 ms
    Feb 26, 2013 7:16:58 PM org.apache.catalina.core.StandardService start
    INFO: Starting service Catalina
    Feb 26, 2013 7:16:58 PM org.apache.catalina.core.StandardEngine start
    INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
    Feb 26, 2013 7:16:58 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized
    INFO: WSSERVLET12: JAX-WS context listener initializing
    Feb 26, 2013 7:16:59 PM com.sun.xml.ws.transport.http.servlet.WSServletDelegate <init>
    INFO: WSSERVLET14: JAX-WS servlet initializing
    Feb 26, 2013 7:16:59 PM org.apache.coyote.http11.Http11Protocol start
    INFO: Starting Coyote HTTP/1.1 on http-8080
    Feb 26, 2013 7:16:59 PM org.apache.jk.common.ChannelSocket init
    INFO: JK: ajp13 listening on /0.0.0.0:8009
    Feb 26, 2013 7:16:59 PM org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/17  config=null
    Feb 26, 2013 7:16:59 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 1608 ms
    

    转到网址http://localhost:8080/soap/HtmlPageService

            Service Name:   {http://soap.tools.paulvargas.org/}HtmlPageServiceService
               Port Name:   {http://soap.tools.paulvargas.org/}HtmlPageServicePort
                 Address:   http://localhost:8080/soap/HtmlPageService
                    WSDL:   http://localhost:8080/soap/HtmlPageService?wsdl
    Implementation class:   org.paulvargas.tools.soap.HtmlPageService
    
            Service Name:   {http://soap.tools.paulvargas.org/}BinaryFileServiceService
               Port Name:   {http://soap.tools.paulvargas.org/}BinaryFileServicePort
                 Address:   http://localhost:8080/soap/BinaryFileService
                    WSDL:   http://localhost:8080/soap/BinaryFileService?wsdl
    Implementation class:   org.paulvargas.tools.soap.BinaryFileService
    

    希望对你有帮助。

    【讨论】:

    • 非常感谢您的回复。我和你一样得到了tomcat输出,但我仍然没有运气。其实我想把它放在像xyz.com/soap/HtmlPageService这样的实时服务器上,你认为这可能是它不起作用的原因吗?
    • 我发现只是我的网址。对我来说,它变成了 xyz.com/HtmlPageService
    • 如果你打算把它作为项目ROOT放在Tomcat中就对了。就我而言,应用程序上下文是soap
    猜你喜欢
    • 2019-08-05
    • 2018-02-04
    • 1970-01-01
    • 2016-04-10
    • 2011-12-24
    • 1970-01-01
    • 2011-01-31
    • 2012-06-08
    • 2015-05-27
    相关资源
    最近更新 更多