package untitled1;
/**
* <p>Title: </p>
* <p>该例子参考自weblogic,运行时需要weblogic的webserviceclient.jar包: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
import java.net.URL;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.namespace.QName;
public class Untitled1 {
public Untitled1() {
}
public static void main(String[] args) {
try {
// Setup the global JAXM message factory
System.setProperty("javax.xml.soap.MessageFactory",
"weblogic.webservice.core.soap.MessageFactoryImpl");
// Setup the global JAX-RPC service factory
System.setProperty("javax.xml.rpc.ServiceFactory",
"weblogic.webservice.core.rpc.ServiceFactoryImpl");
// create service factory
ServiceFactory factory = ServiceFactory.newInstance();
// define qnames 可以从wsdl文件中找到具体值
String targetNamespace ="http://localhost/services/WSUploadFile";
QName serviceName =
new QName(targetNamespace,
"WSUploadFileService");//对应wsdl文件中service name值
QName portName =
new QName(targetNamespace,
"WSUploadFile");//对应wsdl文件中port name或portType name 值
QName operationName = new QName("WSUploadFile",
"testWS");//对应wsdl文件中operation name值,即web services具体提供的方法
URL wsdlLocation =
new URL("http://localhost/services/WSUploadFile?wsdl");
// create service
Service service = factory.createService(wsdlLocation, serviceName);
// create call
Call call = service.createCall(portName, operationName);
// invoke the remote web service
String result = (String) call.invoke(new Object[]{"testWS","asdfg"});//暴露的方法需要两个或多个参数
// String result = (String) call.invoke(new Object[]{});//暴露的方法不需要传递参数
System.out.println(result);
}catch (Exception e) {
e.printStackTrace();
}
}
}