GlassFish Java EE应用程序中的SOAP Web服务

时间:2017-12-05 18:01:00

标签: java-ee soap netbeans jax-ws

我根据Java EE指南使用JAX-WS注释构建了一个SOAP Web服务。

@WebService( name = "PersonDataExposureService" )
public class PersonDataExposureWebServiceBean {
...
@WebMethod
public PersonList retrieveAllPeople() { ... 
    // get the data and return it ... 
}
... more methods ...
}

使用NetBeans向导将Web服务部署到NetBeans中构建的Java EE应用程序中的GlassFish。应用程序部署并在与Web服务相同的WAR中呈现并运行UI。

我正在尝试使用Java EE文档中的一些示例来验证SOAP Web服务的可用性...

http://localhost:8080/DemoApplication-war/PersonDataExposureService?wsdl

http://localhost:8080/DemoApplication-war/PersonDataExposureService?retrieveAllPeople

其中DemoApplication-war是NetBeans Java EE向导生成的WAR。

我收到错误:

HTTP Status 404 - Not Found

type Status report

message Not Found

description The requested resource is not available.

如何直接通过URL访问Web服务,直接在浏览器中呈现WSDL和Web服务方法?

我做错了什么?

1 个答案:

答案 0 :(得分:0)

在NetBeans IDE中为WAR的导航树的“Web Services”部分的PersonDataExposureService节点调用“Test Web Service”会产生:

http://localhost:8080/DemoApplication-war/PersonDataExposureWebServiceBeanService?Tester

这允许从浏览器直接测试Web服务接口。

随后可以使用以下方式访问WSDL:

http://localhost:8080/DemoApplication-war/PersonDataExposureWebServiceBeanService?wsdl

重定向的命名有点令人困惑,但它确实有效。为什么在Web服务名称后附加额外的“服务”并不是很清楚。如果有人可以对生成的名称提供额外的说明,这将有所帮助。