如何在Java Web-Service上接收SOAP XML

时间:2017-10-23 12:25:35

标签: java web-services soap wsdl soap-client

我有WSDL XML文件,由客户发送。这是通知服务。表示我们的客户端在URL http://xxx.xxx.com/notification上向我们的服务器发送SOAP通知。

我是SOAP Web服务的新手,我无法识别,如何在JAVA Web服务上获取SOAP XML。

如果您需要更多说明,请与我联系。

3 个答案:

答案 0 :(得分:1)

我不清楚你的要求是什么。是生成wsdl以便客户端可以使用它来调用您的服务,或者您需要使用提供给您的wsdl来使用第三方服务。

假设你有一个wsdl而你想使用wsdl调用服务,下面就是我的建议。

您可以使用eclipse的方式生成类,唯一的缺点就是每次wsdl文件发生更改时都必须这样做。

如果您使用maven或gradle或ant等构建工具,那么每次构建项目时都可以自动执行“生成”过程。

例如,如果你使用的是Maven,你可以添加jaxws-maven-plugin来实现它,如下所示。将以下内容添加到maven pom.xml文件

以下xml取自https://github.com/mojohaus/jaxws-maven-plugin/blob/master/src/it/jaxws-ri-samples/fromwsdl/client/pom.xml

<build>
    <sourceDirectory>../src</sourceDirectory>
    <finalName>jaxws-fromwsdl-client</finalName>

    <plugins>

      <!-- generate web services classes from wsdl file --> 
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
        <version>1.11</version>
        <executions>
          <execution>
            <goals>
              <goal>wsimport</goal>
            </goals>
            <configuration>
              <verbose>true</verbose>
              <wsdlUrls>
                <wsdlUrl>http://localhost:8080/jaxws-fromwsdl/addnumbers?wsdl</wsdlUrl>
              </wsdlUrls>
              <packageName>fromwsdl.client</packageName>
            </configuration>
          </execution>
        </executions>
      </plugin>


      <!-- configure compiler plugin to pickup only server side java files -->
      <!--   note that at compile phase, wsdl's classes are already generated -->
      <plugin>
       <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
          <includes>
            <include>*/client/*.java</include>
          </includes>
        </configuration>
      </plugin>

    </plugins>
  </build>

答案 1 :(得分:0)

如果您现在希望收到的内容,您可以编写接收器类,如果您使用Eclipse:

在Eclipse主菜单中,单击File&gt;新&gt;其他

在Wizard对话框中,展开Web Services节点,选择Web Service并单击Next。

在Web Services向导屏幕上,为Web服务类型选择Bottom up Java bean Web Service,然后使用Browse按钮选择服务实现类。

下一个屏幕列出了将要创建的WSDL文件的名称以及可以通过SOAP Web服务公开的服务实现类中可用的公共方法。

单击“下一步”继续。 Eclipse IDE现在将生成Web服务文件。

然后,您可以从WSDL创建客户端代码,这是非常通用的,但可以作为起点。

答案 2 :(得分:0)

从您的问题看来,您似乎有一个WSDL文件,并且您希望点击它公开的Web服务。一个快速的方法是:

1)转到命令提示符并在.wsdl文件上执行wsimport -keep(以保存从命令生成的.java文件)。
2)在工作区中移动生成的java文件 3)在.wsdl文件中查找服务名称和端口名称,并随后生成它们的对象 4)然后根据需要在.wsdl中进行操作。