hi all,
I am so disappointed to tell you it didn't work according to what Robert said 
yet. The issue:

the standard war package without specific weblogic config file extracted into 
autodeploy dictionary of weblogic9.2 did work well! But the war package didn't 
work. The exception as follow(by the way I am using the axis2.1.3.):
Caused by: java.lang.NullPointerException
        at org.apache.axis2.extensions.spring.receivers.SpringServletContextObje
ctSupplier.getServiceObject(SpringServletContextObjectSupplier.java:58)
the corresponding code is : 
Parameter servletConfigParam = 
axisService.getAxisConfiguration().getParameter(HTTPConstants.HTTP_SERVLETCONFIG);

I am sure that axisService.getAxisConfiguration() was NULL!

I think http://ws.apache.org/axis2/1_3/app_server.html is stale. As the link 
inside the web is still about weblogic8.1. The most thing is that It didn't 
work when I did it according to the instruction.

config is below: 
the axis2.war\META-INF\weblogic-application.xml file : 
<?xml version="1.0"?>
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  <prefer-application-packages>
    <package-name>com.ctc.wstx.*</package-name>
    <package-name>javax.xml.*</package-name>
    <package-name>org.apache.*</package-name>
  </prefer-application-packages>
</weblogic-application>

the axis2.war\WEB-INF\weblogic.xml : 
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90";>
  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
</weblogic-web-app>

whether the app is deployed by war package or not, the exception is :
java.lang.ClassCastException: com.ctc.wstx.stax.WstxInputFactory
        at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136
)
        at weblogic.servlet.internal.WebAppHelper.addListenerElements(WebAppHelp
er.java:244)
        at weblogic.servlet.internal.WebAppHelper$IOHelperImpl.parseXML(WebAppHe
lper.java:224)
        at weblogic.descriptor.DescriptorCache.parseXML(DescriptorCache.java:324
)
        at weblogic.servlet.internal.WebAppHelper.registerTagLibListeners(WebApp
Helper.java:174)

Do you have any advice? Thank you very much.

Regards
javafoot


----- Original Message ----- 
From: "robert lazarski" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, November 12, 2007 8:57 PM
Subject: Re: axis2 with spring doesn't work on the weblogic, I have a temp 
solution


> 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]

Reply via email to