【问题标题】:How to received SOAP XML on Java Web-Service如何在 Java Web 服务上接收 SOAP XML
【发布时间】:2017-10-23 12:25:35
【问题描述】:

我有客户端发送的 WSDL XML 文件。它用于通知服务。意味着我们的客户端通过 URL http://xxx.xxx.com/notification 向我们的服务器发送 SOAP 通知。

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

如果您需要更多说明,请告诉我。

【问题讨论】:

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


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

      如果您现在希望收到什么,您可以编写接收器类并且如果您使用 Eclipse:

      在 Eclipse 主菜单中,单击文件 > 新建 > 其他。

      在向导对话框中,展开 Web 服务节点,选择 Web 服务并单击下一步。

      在 Web 服务向导屏幕上,选择自底向上 Java bean Web 服务作为 Web 服务类型,然后使用浏览按钮选择服务实现类。

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

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

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

      【讨论】:

        【解决方案3】:

        从您的问题看来,您似乎有一个 WSDL 文件,并且您想访问它所公开的 web 服务。一个快速的方法是:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-22
          • 2011-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-29
          • 2018-12-17
          相关资源
          最近更新 更多