Hello,
I am trying to write a simple service from scratch that uses Axis2 in
conjunction with Axiom and Spring.  I was successfully able to modify
the pojoguidespring sample project to substitute in OMElement
returning methods for the POJO methods; however, I'm stumped with
trying to write a brand new one using that as my template.  I am using
the same ant file from my modified pojoguidespring example (all that
I've changed is the name of the service) and my SpringInit class
duplicates the class from the original example with just a new package
and a file rename.  The error message I am receiving is:

Error: org.apache.axis2.deployment.DeploymentException:
simpletest.SpringInitializer
 at 
org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:144)
 at org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:78)
 at 
org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:137)
 at 
org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:571)
 at 
org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:141)
 at 
org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:318)
 at 
org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:220)
 at 
org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:118)
 at 
org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:272)
 at 
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:78)
 at 
org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:500)
 at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:420)
 at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
 at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
 at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
 at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
 at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
 at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
 at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
 at org.apache.catalina.core.StandardService.start(StandardService.java:516)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.apache.axis2.deployment.DeploymentException:
simpletest.SpringInitializer
 at 
org.apache.axis2.deployment.ServiceGroupBuilder.populateServiceGroup(ServiceGroupBuilder.java:106)
 at 
org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:103)
 at 
org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:137)
... 37 more Caused by:
org.apache.axis2.deployment.DeploymentException:
simpletest.SpringInitializer
 at 
org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:389)
 at 
org.apache.axis2.deployment.ServiceGroupBuilder.populateServiceGroup(ServiceGroupBuilder.java:101)
... 39 more Caused by:
org.apache.axis2.deployment.DeploymentException:
simpletest.SpringInitializer
 at 
org.apache.axis2.deployment.ServiceBuilder.loadServiceLifeCycleClass(ServiceBuilder.java:473)
 at 
org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:184)
... 40 more Caused by: java.lang.ClassNotFoundException:
simpletest.SpringInitializer
 at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
 at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
 at java.lang.ClassLoader.loadClassInternal(Unknown Source)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Unknown Source)
 at org.apache.axis2.util.Loader.loadClass(Loader.java:261)
 at org.apache.axis2.util.Loader.loadClass(Loader.java:229)
 at 
org.apache.axis2.deployment.ServiceBuilder.loadServiceLifeCycleClass(ServiceBuilder.java:466)
... 41 more


These are the three classes in my project:


package simpletest;

import org.apache.axiom.om.OMElement;
import org.apache.axis2.engine.ServiceLifeCycle;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.description.AxisService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class SpringInitializer implements ServiceLifeCycle {

    private static Log logger = LogFactory
        .getLog(SpringInit .class);

    // The web service
    public OMElement springInit(OMElement ignore) {
        return null;
    }

    public void init(ServiceContext serviceContext) {}

    public void setOperationContext(OperationContext arg0) {}

    public void destroy(ServiceContext arg0) {}

    public void startUp(ConfigurationContext ignore, AxisService service) {
        ClassLoader classLoader = service.getClassLoader();
        ClassPathXmlApplicationContext appCtx = new
            ClassPathXmlApplicationContext(new String[]
{"applicationContext.xml"}, false);
        appCtx.setClassLoader(classLoader);
        appCtx.refresh();
        if (logger.isDebugEnabled()) {
            logger.debug("\n\nstartUp() set spring classloader via
axisService.getClassLoader() ... ");
        }
    }
    public void shutDown(ConfigurationContext ignore, AxisService service) {}
}


package simpletest;

import javax.xml.stream.XMLStreamException;
import javax.xml.namespace.QName;

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;

import simpletest.SimpleBean;

public class SimpleServiceService{
        private SimpleBean bean;
        private String namespace = "http://myxsd#";;

        public void setBean(SimpleBean sb){
                bean = sb;
        }
        public SimpleBean getBean(){
                return bean;
        }
        
        public OMElement ping(OMElement ome){
                OMFactory fac = OMAbstractFactory.getOMFactory();
                OMNamespace ns = fac.createOMNamespace(namespace, "ns");
                OMElement response = fac.createOMElement("pingResponse", ns);
                OMElement message = fac.createOMElement("message", ns);
                response.addChild(message);
                message.addChild(fac.createOMText(message, bean.getMessage()));
                return response;
        }

}
package simpletest;

public class SimpleBean{
        private String message;
        
        public void setMessage(String s){
                message = s;
        }
        
        public String getMessage(){
                return message;
        }
}


This is my applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd";>
<beans>
  <bean id="applicationContext"
    
class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder"
/>
  <bean id="simpleService" class="simpletest.SimpleService">
    <property name="bean" ref="simpleBean"/>
  </bean>
  <bean id="simpleBean" class="simpletest.SimpleBean">
    <property name="message" value="This is the message you should see"/>
  </bean>
</beans>


And this is my services.xml:

<serviceGroup>
  <service name="SpringInitializer" class="simpletest.SpringInitializer">
    <description>This web service initializes Spring.</description>
    <parameter name="ServiceClass" >simpletest.SpringInitializer</parameter>
    <parameter name="ServiceTCCL" >composite</parameter>
    <parameter name="load-on-startup" >true</parameter>
    <operation name="springInit">
      <messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    </operation>
  </service>
  <service name="SimpleService">
    <description>
      Axiom Spring POJO Axis2 AAR deployment
    </description>
    <parameter name="ServiceClass" >simpletest.SimpleService</parameter>
    <parameter name="ServiceObjectSupplier"
>org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier</parameter>
    <parameter name="SpringBeanName" >simpleService</parameter>
    <operation name="ping">
        <messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    </operation>
  </service>
</serviceGroup>


Any help would be greatly appreciated.

JC

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to