有人可以在下面的代码中填写缺少的链接吗?调用Web服务。需要缺少的链接
第一种方式:
Web服务接口文件是HappyService。
JaxWSProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.getInterceptors().add(new LoggingInInterceptor());
factory.getInterceptors().add(new LoggingOutInterceptor());
//MISSING LINK. Where does HappyService.class come from? I don't have it
factory.setServiceClass(HappyService.class);
factory.setAddress("http://......../happyService");
//Again how do I get HappyService?
HappyService client = (HappyService) factory.create();
方式二:
String UrlString = "Your WSDL URL";
String nameSpaceUri = "urn:Foo";
String serviceName = "MyHelloService";
String portName = "HelloIFPort";
URL helloWsdlUrl = new URL(UrlString);
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service helloService =
serviceFactory.createService(helloWsdlUrl,
new QName(nameSpaceUri, serviceName));
//Where did dynamicproxy.HelloIF come from? This code won't compile as that file does not exist anywhere
dynamicproxy.HelloIF myProxy =
(dynamicproxy.HelloIF)
helloService.getPort(
new QName(nameSpaceUri, portName),
dynamicproxy.HelloIF.class);
System.out.println(myProxy.sayHello("Buzz"));
任何人有一个线索,在那里这些接口类的来源以及是如何生成的,请让我知道。它看起来像我可以做一个Web服务调用的唯一方法是手动编写SOAP请求,我真的不想这样做,因为它可能会变得非常大和容易出错。
你使用Web服务框架?基于第一个例子,我认为你使用CXF。 HappyService类必须是由CXF提供的wsdl2java任务生成的类。你没有生成的类包吗? – reef 2011-04-05 15:51:15
我注意到你的其他问题看起来像是这个版本的早期版本。我鼓励你编辑你现有的问题来添加更多的细节,而不是在将来打开一个新的细节。欢迎来到StackOverflow! – 2011-04-05 15:56:40
不能,不能访问生成的类。我想要做的是在全球范围内呼叫某人的公共网络服务。 – Julie 2011-04-05 15:58:17