Oh yeah, please follow the instructions in the link first and my general ideas. If that fails, any patches need to be put into a jira issue that you create. My guess though is that this is a weblogic classloader issue that can be solved via the link below.
Robert On Nov 12, 2007 7:53 AM, robert lazarski <[EMAIL PROTECTED]> wrote: > What version of axis2 are you using? You don't seem to be using the > latest stable version 1.3, as line 58 is: > > 58 if (servletConfigParam == null) { > > Furthermore, have you read this? > > http://ws.apache.org/axis2/1_3/app_server.html > > Your problem seems like its classloader related, ie, its possible by > following the instructions in the above link you can solve the > problem. While its been a while since I've used weblogic, some simple > googling show people have been running spring / axis2 / weblogic > successfully. > > If all else fails, while I'm hesitant to patch axis2 for specific app > servers and would probably verify the problem myself first that > there's absolutely no other way - the first step would be getting your > code to compile with svn or a nightly: > > http://people.apache.org/dist/axis2/nightly/ > http://ws.apache.org/axis2/svn.html > > HTH, > Robert > > > On Nov 12, 2007 6:22 AM, Diegoq Lin <[EMAIL PROTECTED]> wrote: > > hi all, > > > > I have a strange issue. I integrated axis2 and spring2.0.5. And I > > distributed the app on the tomcat5.5.20, it works well. but the same war > > package was put down the directory "autodeploy" of weblogic9.2, It didn't > > work and had many excetions. The most valueable exception is as follow: > > > > Caused by: java.lang.NullPointerException > > at > > org.apache.axis2.extensions.spring.receivers.SpringServletContextObje > > ctSupplier.getServiceObject(SpringServletContextObjectSupplier.java:58) > > ... 53 more > > > > I inquired the code in number 58: > > Parameter servletConfigParam = axisService.getAxisConfiguration() > > .getParameter(HTTPConstants.HTTP_SERVLETCONFIG); > > > > if (servletConfigParam == null) { > > throw new Exception("Axis2 Can't find ServletConfigParameter"); > > } > > Object obj = servletConfigParam.getValue(); > > ServletContext servletContext; > > if (obj instanceof ServletConfig) { > > ServletConfig servletConfig = (ServletConfig)obj; > > servletContext = servletConfig.getServletContext(); > > } else { > > throw new Exception("Axis2 Can't find ServletConfig"); > > } > > ApplicationContext aCtx = > > WebApplicationContextUtils.getWebApplicationContext(servletContext); > > any help would be appreciated. > > > > the method main function is just find out the spring application context in > > the servletContext properties. > > after servlet initialized phase, ConfigurationContext and AxisConfiguration > > objects are impossibly null. why axis2 get a null object? see the > > getAxisConfiguration method: > > public AxisConfiguration getAxisConfiguration() { > > > > if (this instanceof AxisConfiguration) { > > return (AxisConfiguration) this; > > } > > > > if (this.parent != null) { > > return this.parent.getAxisConfiguration(); > > } > > > > return null; > > } > > > > the implementation of the method is the problem! I don't know how to do > > correctly. my temp solution that can make the application work on the > > weblogic is as follow: > > > > 1.add the bean in applicationContext.xml: > > <?xml version="1.0" encoding="UTF-8"?> > > <beans xmlns="http://www.springframework.org/schema/beans" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:schemaLocation="http://www.springframework.org/schema/beans > > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> > > > > <bean id="myVersion" class="sample.axisversion.Version" /> > > > > <bean id="globalSpringContext" > > class="sample.axisversion.GlobalSpringContext" lazy-init="false" /> > > </beans> > > > > 2.new the class GlobalSpringContext.java: > > package sample.axisversion; > > > > import org.springframework.beans.BeansException; > > import org.springframework.context.ApplicationContext; > > import org.springframework.context.ApplicationContextAware; > > > > public class GlobalSpringContext implements ApplicationContextAware { > > private static ApplicationContext ac; > > > > /* (non-Javadoc) > > * @see > > org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext) > > */ > > public void setApplicationContext(ApplicationContext ac) throws > > BeansException { > > GlobalSpringContext.ac = ac; > > > > } > > > > public static ApplicationContext getApplicationContext() { > > return ac; > > } > > } > > > > 3.new the MyServiceObjectSupplier.java: > > package sample.axisversion; > > > > import org.apache.axis2.AxisFault; > > import org.apache.axis2.description.AxisService; > > import > > org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier; > > import org.apache.axis2.i18n.Messages; > > import org.apache.commons.logging.Log; > > import org.apache.commons.logging.LogFactory; > > import org.springframework.context.ApplicationContext; > > > > public class MyServiceObjectSupplier extends > > SpringServletContextObjectSupplier { > > > > > > private static Log log = > > LogFactory.getLog(MyServiceObjectSupplier.class); > > /** > > * Method getServiceObject that is Spring aware via ServletContext. > > * > > * @param axisService > > * @return Returns Object. > > * @throws AxisFault > > */ > > public Object getServiceObject(AxisService axisService) throws > > AxisFault { > > try { > > String beanName = > > ((String)axisService.getParameter(SERVICE_SPRING_BEANNAME).getValue()).trim(); > > if (beanName != null) { > > ApplicationContext aCtx = > > GlobalSpringContext.getApplicationContext(); > > if (aCtx == null) { > > log.warn("Axis2 Can't find Spring's > > ApplicationContext"); > > return null; > > } else if (aCtx.getBean(beanName) == null) { > > throw new Exception("Axis2 Can't find Spring Bean: " + > > beanName); > > } > > return aCtx.getBean(beanName); > > } else { > > throw new AxisFault( > > Messages.getMessage("paramIsNotSpecified", > > "SERVICE_SPRING_BEANNAME")); > > } > > } catch (Exception e) { > > throw AxisFault.makeFault(e); > > } > > } > > } > > > > 4.services.xml: > > <service name="Version"> > > <description> > > This service is to get the running Axis version > > </description> > > <!--parameter > > name="ServiceClass">sample.axisversion.Version</parameter--> > > <parameter name="ServiceObjectSupplier" locked="false"> > > sample.axisversion.MyServiceObjectSupplier > > </parameter> > > <parameter name="SpringBeanName" locked="false">myVersion</parameter> > > > > <operation name="getVersion"> > > <messageReceiver > > class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> > > </operation> > > </service> > > > > > > However i still want to know why it works on tomcat but it doesn't work on > > weblogic. Do you have any experience about it? Any help would be > > appreciated. thanks. > > > > Best Regards > > > > javafoot > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]