0

我在从独立的 java 应用程序中调用 cxf webservices 方法并希望将 pojo 类对象参数传递给该方法时遇到问题。

4

2 回答 2

0

Apache CXF 提供了几种客户端实现。您可以使用其中之一。或者,如果它是一个基于 JSON 的 RESTful 服务,您可以使用许多现有客户端中的任何一个,甚至可以使用 GSON 和 Apache HttpComponents 之类的东西自行开发。如果是 SOAP,则要复杂得多。

于 2013-10-17T13:42:43.817 回答
0

好,朋友们。最后我解决了这个问题。我使用以下步骤为 cxf webservices 创建独立的 java 客户端。

第1步:

在 webservice 上创建一个 java 项目和 pojo 类同名(您要传递给调用 webservice 方法的对象)。例如

public class Client{
private String name;

// getter and setter
} 

步骤2:创建具有相同名称()的服务端点接口

import javax.jws.WebService;

@WebService
public interface CheckWebservice {
public boolean isWebservice(Client client);
}

第 3 步:现在我们将使用 spring ApplicationContext 调用 webservice 方法,因此创建一个 application-beans.xml 文件并放入您的项目目录(项目的任何文件夹)

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<jaxws:client id="decisionBean" serviceClass="com.cxf.client.CheckWebservice"
    address="http://localhost:8080/CXF-WEBSERVICES/services/CheckDecisionImplPort" />

第 4 步:使用以下代码调用在服务器上运行的 Web 服务。

try{
    ApplicationContext context = new ClassPathXmlApplicationContext("demo/xml/application-beans.xml");
    CheckWebservice checkDecision = (CheckWebservice ) context.getBean("decisionBean");

    // Populate the Order bean
    Client decision = new Client();
    decision.setDecision("Decision test");
    boolean checkDcn = checkDecision.isWebservice(decision);
    System.out.println("Decision recived : "+checkDcn);
}catch(Exception e){
e.printStackTrace();
}

注意:请使用 apache-cxf-2.7.7 库中的库,这会有所帮助。

于 2013-10-18T08:32:24.107 回答