2

我有一个打包在 EAR 中的 JAX-WS Web 服务,部署到 WebSphere v7。EAR 包含:
- APP-INF 目录:类目录(右侧包层次结构中的 .class 文件)加上带有所需 jar 的 lib 目录
- META-INF 目录
- 带有空 WEB-INF 和 META-INF 目录的战争以及 HelloWorld索引.html

我有两节课:

@WebService
public interface Service {}

和:

@WebService
public class ServiceImpl implements Service {
    @WebMethod
    public String test(String who) {
        return("Hello " + who + "!");
    }
}

(业务逻辑需要 lib 目录中的 jar,我只是用简单的 hello + who 替换了逻辑)。

我已经在 WAS v7 中部署了 EAR,现在我想使用 SOAP UI 对其进行测试。我 在部署期间为:
/service设置了上下文根。

我在哪里可以找到生成的 WSDL 及其地址/端点是什么?

我对此完全陌生,WAS v7 完整教程链接上有用的 JAX-WS 也可以。我找不到任何东西,虽然我已经用谷歌搜索了几个小时了......

4

1 回答 1

3

当您不直接定义时,默认情况下,JAX-WS 运行时会将后缀添加Service到实现服务的类,尽管这不是适用于所有运行时的规则。如果您想获取已部署的 WSDL,请尝试

http://localhost:9080/service/ServiceImplService?wsdl

或者

http://localhost:9080/service/ServiceImplService/ServiceImplService.wsdl

如果要更改模式 URL

@WebService(serviceName = "EchoService")
public class ServiceImpl implements Service {
    @WebMethod
    public String test(String who) {
        return ("Hello " + who + "!");
    }
}

尝试

http://localhost:9080/service/EchoService?wsdl

IBM 红皮书 - Application Server V7.0 中查看更多信息。网络服务指南

更新

如果要在 WAS 中部署 EAR,基本结构是:

TestEAR.ear
|   TestWeb.war
|
\---META-INF
        MANIFEST.MF

此 EAR 中的 WAR 文件的结构是:

TestWeb.war
+---META-INF
|       MANIFEST.MF
|
\---WEB-INF
    |   ibm-web-bnd.xml
    |   ibm-web-ext.xml
    |   web.xml
    |
    +---classes
    |   \---org
    |       \---paulvargas
    |           \---test
    |               |   Service.class
    |               |   ServiceImpl.class
    |               |
    |               \---jaxws
    |                       Test.class
    |                       TestResponse.class
    |
    \---lib

这些文件是此示例的可选文件。唯一的有:ibm-web-xxx.xmlMANIFEST.MF

Manifest-Version: 1.0
Class-Path: 

文件Test.classTestResponse.class(用于testWSDL 文档文件中的操作)由wsgen工具生成,使用类似的命令:

wsgen -cp . org.paulvargas.test.ServiceImpl

并且web.xml包含:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>TestWeb</display-name>
    <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>

wsdlLocation为此:

http://localhost:9080/TestWeb/ServiceImplService/ServiceImplService.wsdl

看更多:

于 2013-04-30T16:32:52.223 回答