我需要使用spring webservice
访问JaxWsPortProxyFactoryBean
。我可以在上下文xml中连接它并使用它。有没有办法只使用注释使用'webservice'?我正在使用apache cxf和spring mvc 3.
基线是我需要在不使用xml配置的情况下访问Web服务。这可能吗?
我看到了一些注释,如@WebMethod
和@WebMethod
,但我不知道如何正确使用它。
任何人都可以向我指出一个例子。感谢您的帮助。
答案 0 :(得分:1)
我找到了解决方案。请参考下文。
JaxWsPortProxyFactoryBean jaxWsPortProxyFactoryBean = new JaxWsPortProxyFactoryBean();
String URI = "http://localhost:8080/service";
try {
jaxWsPortProxyFactoryBean.setWsdlDocumentUrl(new URL(URI+"?wsdl"));
jaxWsPortProxyFactoryBean.setServiceInterface(myIService.class);
jaxWsPortProxyFactoryBean.setPortName(PORT);
jaxWsPortProxyFactoryBean.setNamespaceUri(URI);
jaxWsPortProxyFactoryBean.setServiceName(SERVICE_NAME);
logger.debug("WSDL - "+jaxWsPortProxyFactoryBean.getWsdlDocumentUrl());
jaxWsPortProxyFactoryBean.afterPropertiesSet();
} catch (Exception e) {
logger.error("Error occured while connecting to the TW web service -",e);
}
请参阅Accessing web services using JAX-WS以获取有关端口和URI的更多信息。
服务接口 -
public interface testService {
@WebMethod(operationName = "myOperations", action = "")
@WebResult(name = "errorCode",targetNamespace = "")
public String testWebService(
@WebParam(name = "studentId", targetNamespace = "", mode = Mode.IN) Integer studentId,
@WebParam(name = "studenName", targetNamespace = "", mode = Mode.IN) String studenName);
}
myOperations - 是您需要在webService中访问的操作
errorCode - 是来自webservice的返回值
studentId,studentName - 是您需要发送到网络服务的参数。
我遇到了如何将多个属性映射为webResults的问题。我发布了this问题但仍然没有运气。