未找到JAX-WS多个端点:无效请求

时间:2016-04-30 00:30:52

标签: web-services tomcat soap jax-ws

我正在尝试为两个端点实现Web服务并收到此错误 在部署到apache toncat 8后尝试访问服务时,“ 404 Not Found:Invalid Request ”。

以下是我的Web服务实现类sun-jaxws.xml和web.xml

WebImplementation1.java

        </div>
    </div>
</section>             
<div class="space80"></div>

<section class="main_content">
    <div class="container">
        <div class="row">

WebServiceImplementation2.java

package com.ws.soap.services;
import javax.jws.WebService;

@WebService(endpointInterface = "com.ws.soap.services.WebServiceImpl1")
public class WebServiceImpl1  {

    public String printMessage() {
        return "Hello from WebServiceImpl1 ";
    }
}

太阳jaxws.xml

package com.ws.soap.services;

import javax.jws.WebService;

@WebService(endpointInterface = "com.ws.soap.services.WebServiceImpl2")
public class WebServiceImpl2 {

    public String displayMessage() {
        return "Hello from WebServiceImpl2 ";
    }
}

的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
    version="2.0">
    <endpoint name="WebServiceImpl1" implementation="com.ws.soap.services.WebServiceImpl1"
        url-pattern="/impl1" />
    <endpoint name="WebServiceImpl2" implementation="com.ws.soap.services.WebServiceImpl2"
        url-pattern="/impl2" />
</endpoints>

1 个答案:

答案 0 :(得分:4)

使用提供的确切代码(以及从https://jax-ws.java.net/下载的JAX-WS RI jar),我能够创建一个webapp并成功访问服务端点/impl1/impl2。建议<url-pattern><endpoint ... url-pattern="/impl1">指令在封闭Web应用程序的上下文路径中声明JAX-WS端点的资源路径

因此,如果webapp的名称是MyWebServicesMyWebServices.war,没有其他文件/代码,而不是帖子中描述的,部署到Tomcat 8),那么<url-pattern>/impl1</url-pattern>在{ {1}},并且在端口web.xml上侦听默认的Tomcat实例,您的Web服务端点将为http://localhost:800/MyWebServices/impl1,其中WSDL可通过http://localhost:800/MyWebServices/impl1?wsdl

获取

如果您想自定义网络应用的上下文路径(例如,您不想8080,则可以使用in this SO question所述的技术。

例如,我的本地Tomcat 8正在端口8081上运行:

enter image description here