我遇到了从独立java应用程序调用cxf webservices方法并且想要将pojo类对象参数传递给该方法的问题。
答案 0 :(得分:0)
Apache CXF提供了多个客户端实现。你可以使用其中一个。或者,如果它是一个基于RESTSON,基于JSON的服务,您可以使用许多现有客户端中的任何一个,甚至可以使用GSON和Apache HttpComponents等自己的客户端。如果它是SOAP,那就复杂得多了。
答案 1 :(得分:0)
好的伙计们。最后我解决了这个问题。我已经使用以下步骤为cxf webservices创建独立的Java客户端。
第1步:
在webservice上创建一个java项目和pojo类同名(要传递给调用webservice方法的对象).Ex
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:使用下面的代码调用在服务器上运行的webservice。
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库中的库,这将有所帮助。