我在从独立的 java 应用程序中调用 cxf webservices 方法并希望将 pojo 类对象参数传递给该方法时遇到问题。
问问题
1024 次
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 回答