Hi I am using Axis 1.1. I think I confused you by talking about the "implementation class". This is how I have my web service setup - -------------- <service name="FOPWSImpl" provider="java:RPC"> <requestFlow> <handler type="AttachmentHandler"/> <parameter name="scope" value="application"/> </requestFlow>
<parameter name="allowedMethods" value="*"/> <parameter name="className" value="com.boeing.ebtc.webservices.impl.FOPWSImpl"/> <parameter name="scope" value="application"/> <fault name="FOPWSException" ...... ------------- And the init method that I was talking about is in the FOPWSImpl class. Does that answer your question? -Srinivas -----Original Message----- From: Aaron Hamid [mailto:[EMAIL PROTECTED] Sent: Friday, December 12, 2003 12:46 PM To: [EMAIL PROTECTED] Subject: Re: <init-param> ...getting null values That's strange, only the Skeleton class was inspected for ServiceLifecycle last time I checked, and my impl was not itself inspected/called. What Axis version are you using, 1.1? Are you using RPC style with stubs? Aaron I-Sampige, Srinivas wrote: > Aaron, > I got it working after some close analysis and trial and error. I had > place the parameters in the wrong section using the wrong tags. This is what I had > to do - > ---------------------------------------- > <web-app> > <display-name>Apache-Axis</display-name> > > <!-- initialization parameters for all web services/web apps > deployed in this context. --> > > <!-- the demo .fo file for the FOP Web Service--> > <context-param> > <param-name>demoFoFileName</param-name> > <param-value>demoFoFile.fo</param-value> > <description>foo desc</description> > </context-param> > ------------------------------------- > > >>ServiceLifecycle params and web.xml init params have nothing to do >>with >>each other. > > >>Service params are configured in your WSDD. Furthermore, >>ServiceLifecycle init method will NOT be called if implement it in your >>*Impl class. You must implement it in your *Skeleton class (modify the >>generated source). If you want your *Impl class to implement it, you >>must implement it in your Skeleton then manually call down to the >>implementation. > > > It appears this is not the case. My init method gets called and I > have access to the params from web.xml(after making the change above). > Please see > http://ws.apache.org/axis/java/apiDocs/javax/xml/rpc/server/ServiceLif > ecycle.html#init(java.lang.Object) & > http://ws.apache.org/axis/java/apiDocs/javax/xml/rpc/server/ServletEnd > pointContext.html > > Thanks > Srinivas > > > > > > > > > > > > -----Original Message----- > From: Aaron Hamid [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 11, 2003 7:53 PM > To: [EMAIL PROTECTED] > Subject: Re: <init-param> ...getting null values > > > ServiceLifecycle params and web.xml init params have nothing to do > with > each other. > > Service params are configured in your WSDD. Furthermore, > ServiceLifecycle init method will NOT be called if implement it in your > *Impl class. You must implement it in your *Skeleton class (modify the > generated source). If you want your *Impl class to implement it, you > must implement it in your Skeleton then manually call down to the > implementation. > > My expectation was that ServiceLifecycle would apply to the *Impl > class, > and I would would vote to change this behavior so that is the case. > > Aaron Hamid > > I-Sampige, Srinivas wrote: > > >>Hi >>I have implemented the ServiceLifecycle interface method in my web service >>implementation class and trying to read some input parameters from my web.xml. But, >>I don't see the input parameters at all in my "init" method even though I am able to >>print out other details like the real path to a couple of folders. Any ideas? Would >>be extremely grateful if somebody can take a quick look at this and help. I looked >>for typos in the web.xml but couldn't find any. Went to the extent of copying the >>init parameter section from the "SOAPMonitorService" of the web.xml. Please see >>below for complete details - >> >>Configuration - Axis 1.1; Tomcat 4.1.27; Java version is 1.4.2. >> >>Output that comes on the console ( web.xml and code snippets are >>pasted >>after the output)- >>-------------------------------------------------------------------------------------------------------------------- >>This is the init method of the service implementation----- >>parameter names ---- >> >> >>attribute names --- >>org.apache.catalina.jsp_classpath >>javax.servlet.context.tempdir >>org.apache.catalina.resources >>AxisEngine >>org.apache.catalina.WELCOME_FILES >> >> >>Getting parameter values...... >>firstParam null >>secondParam null >> >> >>Misc values extracted from context...... >>server into Apache Tomcat/4.1.27 >>real path of / C:\workarea\ebtcWebServices\ >>real path of /docs C:\workarea\ebtcWebServices\docs >>ctx.getMajorVersion() 2 >>ctx.getMinorVersion() 3 >>---------------------------------------------------------------------- >>- >>--------------------------------------------- >> >>The relevant snippet from my web.xml - >>---------------------------------------------------------------------- >>------------------ >><web-app> >> <display-name>Apache-Axis</display-name> >> <servlet> >> <servlet-name>AxisServlet</servlet-name> >> <display-name>Apache-Axis Servlet</display-name> >> <servlet-class> >> org.apache.axis.transport.http.AxisServlet >> </servlet-class> >> >> <init-param> >> <param-name>firstParam</param-name> >> <param-value>firstValue</param-value> >> </init-param> >> >> <init-param> >> <param-name>secondParam</param-name> >> <param-value>secondValue</param-value> >> </init-param> >> </servlet> >>---------------------------------------------------------------------- >>- >>----------------- >> >>My init method looks like this- >>---------------------------------------------------------------------- >>- >>------------------ >> public void init(Object context) >> { >> System.out.println("This is the init method of the service implementation-----"); >> >> ServletEndpointContext servletEndPointCtx = (ServletEndpointContext) context; >> ServletContext ctx = servletEndPointCtx.getServletContext(); >> >> System.out.println("parameter names ----"); >> Enumeration paramNames = ctx.getInitParameterNames(); >> while (paramNames.hasMoreElements()) >> { >> System.out.println(paramNames.nextElement()); >> } >> System.out.println(""); >> System.out.println(""); >> >> System.out.println("attribute names ---"); >> Enumeration attributes = ctx.getAttributeNames(); >> while (attributes.hasMoreElements()) >> { >> System.out.println(attributes.nextElement()); >> } >> System.out.println(""); >> System.out.println(""); >> >> System.out.println("Getting parameter values......"); >> System.out.println("firstParam "+ctx.getInitParameter("firstParam")); >> System.out.println("secondParam "+ctx.getInitParameter("secondParam")); >> System.out.println(""); >> System.out.println(""); >> >> System.out.println("Misc values extracted from context......"); >> System.out.println("server into "+ctx.getServerInfo() ); >> System.out.println("real path of / "+ ctx.getRealPath("/")); >> System.out.println("real path of /docs "+ ctx.getRealPath("/docs")); >> System.out.println("ctx.getMajorVersion() "+ctx.getMajorVersion()); >> System.out.println("ctx.getMinorVersion() "+ctx.getMinorVersion()); >>} >>---------------------------------- >> >>Thanks >>Srinivas