需要jar包:
无,jdk自带
测试:
package javax;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.spi.Provider;
import javax.xml.ws.spi.ServiceDelegate;
public class JAXWSClient {
public static void main(String[] args) throws MalformedURLException {
URL wsdlLocation = new URL("http://127.0.0.1:8087//services/WebServicesTest?wsdl");
//设置命名空间
String namespaceURI = "webservices.wst.weaver.com.cn";
//设置service名称:<wsdl:service name="WebServicesTest">
String serviceName = "WebServicesTest";
//设置port名称:<wsdl:port name="WebServicesTestHttpPort"
String portName = "WebServicesTestHttpPort";
WebServicesTest result=(WebServicesTest) JAXWSClient.getServiceClass1(wsdlLocation, namespaceURI, serviceName, portName, WebServicesTest.class);
System.out.println(result.getIN(132));
}
/**
* 返回接口映射
* @param wsdlLocation WebService接口
* @param namespaceURI 命名空间
* @param serviceName service名称:<wsdl:service name="WebServicesTest">
* @param portName port名称:<wsdl:port name="WebServicesTestHttpPort"
* @param className 映射类
* @return
*/
public static Object getServiceClass(URL wsdlLocation,String namespaceURI,String serviceName,String portName,Class className){
ServiceDelegate delegate = Provider.provider().createServiceDelegate(wsdlLocation,new QName(namespaceURI, serviceName),Service.class);
return delegate.getPort(new QName(namespaceURI, portName), className);
}
/**
* 返回接口映射
* @param wsdlLocation WebService接口
* @param namespaceURI 命名空间
* @param serviceName service名称:<wsdl:service name="WebServicesTest">
* @param portName port名称:<wsdl:port name="WebServicesTestHttpPort"
* @param className 映射类
* @return
*/
public static Object getServiceClass1(URL wsdlLocation,String namespaceURI,String serviceName,String portName,Class className){
Service service = Service.create(wsdlLocation, new QName(namespaceURI, serviceName));
return service.getPort(new QName(namespaceURI, portName), className);
}
}
接口映射:
package javax;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(name = "WebServicesTest", targetNamespace = "webservices.wst.weaver.com.cn")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface WebServicesTest {
@WebMethod(operationName = "getIN1")
@WebResult(name = "getIN1Response", partName = "getIN1Response")
public String getIN1(
@WebParam(name = "in0", partName = "in0") String in0);
@WebMethod(operationName = "getIN")
@WebResult(name = "getINResponse", partName = "getINResponse")
public String getIN(
@WebParam(name = "in0", partName = "in0") int in0);
}