I have set up a web service using Axis 1.4 using Spring and Hibernate. However, when the klient connects, the onInit method of my server-side endpoint is never actually called. The following is my setup:
SvinnServiceEndpoint.java:
in spring-web.xml I have the following:Code:package no.norgesgruppen.bm.wsservlet; import java.util.List; import no.norgesgruppen.bm.data.svinn.SvinnData; import no.norgesgruppen.bm.service.SvinnService; import org.apache.log4j.Logger; import org.springframework.remoting.jaxrpc.ServletEndpointSupport; public class SvinnServiceEndpoint extends ServletEndpointSupport { private Logger log = Logger.getLogger(SvinnServiceEndpoint.class); private SvinnService svinnService; public void onInit() { System.out.println("onInit kalt..."); this.svinnService = (SvinnService) getWebApplicationContext().getBean("svinnService"); } public List<SvinnData> getSvinnListe(SvinnRequestType svinnType) { System.out.println("SvinnServiceEndpoint: getSvinnListe kalt...." + svinnType.toString()); System.out.println("SvinnServiceEndpoint: Henter Liste..."); List<SvinnData> liste = svinnService.getSvinnListe(svinnType.getVareNummer(), svinnType.isLokalVare(), svinnType.getGln()); System.out.println("SvinnServiceEndpoint: Fant " + liste.size() + " svinn"); return liste; } // TODO: Utvide med logikk for å sjekke fra og til dato, og bestemme hvilken // svinnService klasse som skal kalles. public SvinnData getSvinnData(SvinnRequestType svinnType) { return svinnService.getSvinn(svinnType.getVareNummer(), svinnType.isLokalVare(), svinnType.getGln(), svinnType.getFraDato()); } }
server-config.wsdd:HTML Code:<bean id="svinnService" class="no.norgesgruppen.bm.service.SvinnServiceImpl"> <constructor-arg> <ref local="svinnDao" /> </constructor-arg> </bean> <bean id="svinnServiceEndpoint" class="no.norgesgruppen.bm.wsservlet.SvinnServiceEndpoint"></bean>
When the klient tried to call getSvinnListe, I get the following output:Code:<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" /> <service name="SvinnService" style="document" provider="java:RPC"> <namespace>http://172.25.100.73:8080/bm/services/SvinnService</namespace> <parameter name="className" value="no.norgesgruppen.bm.wsservlet.SvinnServiceEndpoint" /> <parameter name="allowedMethods" value="getSvinnData getSvinnListe" /> <beanMapping qname="myNS:SvinnData" xmlns:myNS="beans.svinn.data.bm.norgesgruppen.no" languageSpecificType="java:no.norgesgruppen.bm.data.svinn.SvinnData" /> <beanMapping qname="myNS:SvinnTypeData" xmlns:myNS="beans.svinn.data.bm.norgesgruppen.no" languageSpecificType="java:no.norgesgruppen.bm.data.svinn.SvinnTypeData" /> <beanMapping qname="myNS:SvinnVareTypeData" xmlns:myNS="beans.svinn.data.bm.norgesgruppen.no" languageSpecificType="java:no.norgesgruppen.bm.data.svinn.SvinnVareTypeData" /> <beanMapping qname="myNS:SvinnVareTypeData" xmlns:myNS="beans.lokalvare.data.bm.norgesgruppen.no" languageSpecificType="java:no.norgesgruppen.bm.data.lokalvare.LokalVareData" /> <beanMapping qname="myNS:SvinnRequestType" xmlns:myNS="wsservlet.bm.norgesgruppen.no" languageSpecificType="java:no.norgesgruppen.bm.wsservlet.SvinnRequestType" /> </service> <transport name="http"> <requestFlow> <handler type="URLMapper" /> </requestFlow> </transport> </deployment>
indicating that onInit never actually gets called. Am I missing some configurations ? The client receives a NullPointerException Error, BTW.Code:15:00:42,334 INFO [STDOUT] SvinnServiceEndpoint: getSvinnListe kalt.... ------ varenummer: 8554 islokal: true gln: 7887 fradato: null tildato: null 15:00:42,334 INFO [STDOUT] SvinnServiceEndpoint: Henter Liste...


Reply With Quote