I'm am trying to write a client for a web service using:
1. Spring-WS 1.0m3
2. Spring MVC (Spring2.0)
My code builds without error. But when it runs I get a java.lang.NullPointerException error. It's from the line
in the client class below.Code:webServiceTemplate.sendAndReceive(source, result);
I have been struggling with this for 2 weeks trying to get this to work.
Is there anyone on this forum that can help me figure this out?
I've googled and read what documentation exists. There's SO MUCH info on writing web services. But hardly anything on writing clients. (spring-ws has about 2.5 pages)
Any help would be appreciated. Thanks.
===========================================
I have a -servlet.xml file that has:
Code:<bean id="webServiceClient" class="WebServiceClient"> <property name="messageFactory"> <bean class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/> </property> <property name="messageSender"> <bean class="org.springframework.ws.transport.http.HttpUrlConnectionMessageSender"> <property name="url" value="http://vsdv1dev02:8080/sprint1/CatalogService"/> </bean> </property> </bean>
and then I have a client class:
finally in my dispatchservlet I have:Code:public class WebServiceClient { private static final String MESSAGE = "<com:getOffers><com:CatalogName>lucene</com:CatalogName></com:getOffers>"; private WebServiceTemplate webServiceTemplate = new WebServiceTemplate(); public void setMessageFactory(WebServiceMessageFactory messageFactory) { webServiceTemplate.setMessageFactory(messageFactory); } public void setMessageSender(WebServiceMessageSender messageSender) { webServiceTemplate.setMessageSender(messageSender); } public String simpleSendAndReceive() throws IOException { StreamSource source = new StreamSource(new StringReader(MESSAGE)); StreamResult result = new StreamResult(System.out); //StringResult result = new StringResult(); String thisResult = ""; try { webServiceTemplate.sendAndReceive(source, result); } catch (Exception e) { e.printStackTrace(System.out); } return result.toString() + " and " + thisResult; } }
ultimately I need to get the result in an object to pass back to the view.Code:public class GciController implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { WebServiceClient wsc = new WebServiceClient(); String result = ""; try { result = wsc.simpleSendAndReceive(); } catch (Exception e) { result = e.toString() + ": testing"; } return new ModelAndView("plan-summary.jsp", "result", result); } }


Reply With Quote
