从WSDL链接java

时间:2015-04-23 22:11:02

标签: java web-services wsdl jax-ws ebay-api

我试图通过提供WSDL的url来访问在WSDL中定义的Web服务。我正在处理的具体案例是ebay“FindingService”。

解析WSDL后,我搜索我要查找的服务(例如“FindingService”)。接下来,我希望能够通过某种类型的客户端使用该服务(发送关键字并获得结果)。我环顾四周,找到了我试图修改的以下代码,以便将它用于我的示例。由于我还是WSDL的新手,我不知道如何调整它并且我一直收到错误:未定义的端口类型:{http://WSDL/} face

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;


public class client{

    public static void main(String[] args) throws Exception {

    URL url = new URL("http://developer.ebay.com/webservices/finding/latest/findingservice.wsdl");

        //1st argument service URI, refer to wsdl document above
    //2nd argument is service name, refer to wsdl document above
        QName qname = new QName("http://www.ebay.com/marketplace/search/v1/services", "FindingService");

        Service service = Service.create(url, qname);


        face hello = service.getPort(face.class);

       System.out.println(hello.getHelloWorldAsString("test"));

    }

}

第二节课是:

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)
public interface face{

    @WebMethod String getHelloWorldAsString(String name);

}

第三类是:

import javax.jws.WebService;

//Service Implementation
@WebService(endpointInterface = "face")
public class endp implements face{

    @Override
    public String getHelloWorldAsString(String name) {
        return "Hello World JAX-WS " + name;
    }

}

如果能得到一些指导,我会感激不尽。有可能访问这样的服务,还是我必须使用ebay API(带密钥等)?

1 个答案:

答案 0 :(得分:0)

WSDL只是客户端和服务器之间的契约。

最佳解决方案是不在运行时解析WSDL并尝试调用操作。您可能希望将这些操作称为执行有用的操作。例如:查找所有用户Ebay订单。

这些行动中的每一个都可以具有复杂的输入和输出。在Java中使用SOAP Web服务的最佳解决方案通常是生成基于WSDL的代码,因此您将拥有一个完整的工作客户端而无需太多工作。

我可以推荐这些API:

JAX-WS: http://www.mkyong.com/webservices/jax-ws/jax-ws-wsimport-tool-example/

弹簧-WS: https://spring.io/guides/gs/consuming-web-service/

轴心2: https://axis.apache.org/axis2/java/core/docs/userguide-creatingclients.html