Jarek,
That testsuite samples do help, and I make progress. But I am stopped by a
new problem: how to code to access the jax-ws web service?
What I want to achieve is not to use static wsdl in any configuration file,
while let axis2 engine generate it at runtime. So I did following changes:
1. Add a webservice-description to WEB-INF/webservices.xml like this:
Trade JAX-WS
Impl
TradeJWSPort
TradeJWSService
false
org.apache.geronimo.samples.daytrader.jaxws.Trade
TradeImplwJAXWS
2. Then in a proxy code, I write as follows to try to get the web service
port.
Service service = null;
QName portName = null;
try {
URL wsdlLoc = new URL(TradeConfig.getSoapURL());
QName serviceName = new
QName("http://jaxws.daytrader.samples.geronimo.apache.org",
"TradeJWSService");
portName = new
QName("http://jaxws.daytrader.samples.geronimo.apache.org", "TradeJWSPort");
service = Service.create(wsdlLoc, serviceName); // line 45 of
TradeImplwJAXWSProxy.java
} catch (MalformedURLException e) {
Log.error(e, "TradeImplwJAXWSProxy throws MalformedURLException");
}
return
(org.apache.geronimo.samples.daytrader.jaxws.Trade)service.getPort(portName,
org.apache.geronimo.samples.daytrader.jaxws.Trade.class);
Then when I try to call it, an exception like this thrown out:
javax.xml.ws.WebServiceException: An attempt was made to construct the
ServiceDelegate object with an service name that is not valid:
{http://jaxws.daytrader.samples.geronimo.apache.org}TradeJWSService.
at
org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:172)
at
org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:69)
at
org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:117)
at
org.apache.axis2.jaxws.spi.ServiceDelegate.(ServiceDelegate.java:92)
at
org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:45)
at javax.xml.ws.Service.(Service.java:36)
at javax.xml.ws.Service.create(Service.java:88)
at
org.apache.geronimo.samples.daytrader.jaxws.TradeImplwJAXWSProxy.getTrade(TradeImplwJAXWSProxy.java:45)
at
org.apache.geronimo.samples.daytrader.jaxws.TradeImplwJAXWSProxy.(TradeImplwJAXWSProxy.java:34)
at
org.apache.geronimo.samples.daytrader.web.TradeServletAction.(TradeServletAction.java:52)
at
org.apache.geronimo.samples.daytrader.web.TradeAppServlet.performTask(TradeAppServlet.java:112)
at
org.apache.geronimo.samples.daytrader.web.TradeAppServlet.doGet(TradeAppServlet.java:77)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.geronimo.samples.daytrader.web.OrdersAlertFilter.doFilter(OrdersAlertFilter.java:94)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
at
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:406)
at
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:810)
I checked web services testsuite, but not find a sample about how to use
dynamic wsdl generation to get service port. Seems those samples all use
generated static wsdl and service-ref to get service port from JNDI.
Please advise, thanks!
Forrest
--
View this message in context: http://www.nabble.com/Can-we-use-JAX-RPC-and-JAX-WS-in-the-same-time-in-a-JEE-application--tp21312861s134p21325051.html
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.