WebService - [Debug] javax.xml.ws.WebServiceException: Undefined port type


背景:

使用JDK來開發java web service (Create a SOAP-based RPC style web service endpoint by using JAX-WS)。

具體請看 -> WebService - 使用JDK開發WebService

 

代碼:

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

public class WebServiceClient {
    public static void main(String[] args) throws MalformedURLException {

        URL url = new URL("http://127.0.0.1:8080/WS_Server/Webservice?wsdl");
        QName qname = new QName("http://webservice/", "WebServiceImplService");

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

        WebServiceI serviceI = service.getPort(WebServiceI.class);

        System.out.println(serviceI.sayHello("cuixunxu "));

    }

錯誤:

Exception in thread "main" javax.xml.ws.WebServiceException: Undefined port type: {http://webservice/}WebServiceI
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:456)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:463)
    at javax.xml.ws.Service.getPort(Service.java:188)
    at webservice.client.WebServiceClient.main(WebServiceClient.java:19)

 

 解決方法:

@WebService的接口類WebServiceI代碼:

package webservice;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface WebServiceI {

    @WebMethod
    String sayHello(String name);

    @WebMethod
    String save(String name,String pwd);

}

 

 

WebServiceI接口的實現類WebServiceImpl類的代碼:...注意,需要在@WebService注解后面加上接口的全路徑

package webservice;

import webservice.WebServiceI;

import javax.jws.WebService;

@WebService(endpointInterface="webservice.WebServiceI")
public class WebServiceImpl implements WebServiceI {
    @Override
    public String sayHello(String name) {
        return name + "is calling!!!";
    }

    @Override
    public String save(String name, String pwd) {
        return "Receive name: " + name + " and pwd: " + pwd;
    }
} 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM