如何从独立应用程序调用webservices方法

时间:2013-10-17 13:30:21

标签: java web-services

我遇到了从独立java应用程序调用cxf webservices方法并且想要将pojo类对象参数传递给该方法的问题。

2 个答案:

答案 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库中的库,这将有所帮助。