2011-04-21 105 views
0

我需要使用spring JaxWsPortProxyFactoryBean访问webservice。我可以将它连接到上下文xml中并使用它。有没有什么办法只使用注释来使用'webservice'?我正在使用apache cxf和spring mvc 3.使用Spring的注释来访问webservice

baseline是我需要访问webservice而不使用xml configurations.is这可能吗? 我看到一些注释,如@WebMethod@WebMethod,但我不知道如何正确使用它。

任何人都可以指点我一个例子。感谢你的帮助。

我的WS网址 - http://localhost:8080/test.asmx/HelloWorld

回答

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 - 就是你需要在web服务访问操作

的errorCode - 从web服务的返回值

studentId,studentName - 是的您需要发送到Web服务的参数。

我被卡住了如何找出将多个属性映射为webResults。我发布了this的问题,仍然没有任何运气。