如何在Eclipse中使用CXF来使用WebService

时间:2014-08-19 19:34:50

标签: java eclipse web-services cxf webservice-client

我正在尝试使用Eclipse和Apache CXF来使用WEBSERVICE(http://www.detecno.mx/WCFTimbrador/DetecnoPac.svc?wsdl)。

我已经从http://cxf.apache.org/下载了最新的Apache CXF版本(2.5.2),并且已经在Eclipse Preferences>中配置了它的位置。 Web服务> CXF 2.x首选项

enter image description here

尝试在项目中创建新的Web Service Client时,我无法选择Apache CXF作为WS运行时(禁用“确定”按钮) enter image description here

我的项目不是动态网络项目,它与此有关吗?它是一个普通的Java项目,其JAR包含在其他动态Web项目中。

1 个答案:

答案 0 :(得分:1)

禁用“确定”按钮的原因是您尚未选择现有服务器。由于它是普通的Java项目,因此您可能没有或不需要配置服务器。

您也可以在不使用Eclipse向导的情况下创建Web服务客户端,这可能更简单。

使用wsimport命令(在JDK中可用),您可以从WSDL生成所需的Java源文件。

wsimport -s E:\workspace\cxf\src http://www.detecno.mx/WCFTimbrador/DetecnoPac.svc?wsdl

以下是访问Web服务的方法示例。

public static void main(String[] args) {
    ServiceDetecnoPAC serviceDetecnoPAC = new ServiceDetecnoPAC();
    IDetecnoPac port = serviceDetecnoPAC.getPort(IDetecnoPac.class);

    ((BindingProvider) port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://www.detecno.mx/WCFTimbrador/DetecnoPac.svc?wsdl");

    Client client = ClientProxy.getClient(port);
    org.apache.cxf.endpoint.Endpoint cxfEndpoint = client.getEndpoint();

    port.obtenerHoraServidor();
}