Axis - EJB Provider
babloosony Jan 12, 2005 6:36 AMHi All,
I have deployed an ejb on JBoss and I am using axis-1_2RC1. Below is working configuration for this ejb web service in
server-config.wsdd
<service name="Demo" provider="Handler" style="wrapped" use="literal"> --> <parameter name="handlerClass" value="org.jboss.net.axis.server.EJBProvider" /> <parameter name="beanJndiName" value="ejb/Demo"/> <parameter name="homeInterfaceName" value="com.sosnoski.test.interfaces.DemoHome"/> <parameter name="remoteInterfaceName" value="com.sosnoski.test.interfaces.Demo"/> <parameter name="allowedMethods" value="getAccountHistory"/> <parameter name="className" value="com.sosnoski.test.ejb.DemoBean"/> <parameter name="jndiURL" value="jnp://localhost:1099"/> <parameter name="jndiContextClass" value="org.jnp.interfaces.NamingContextFactory"/> <parameter name="wsdlPortType" value="DemoInterface"/> <parameter name="wsdlServicePort" value="Demo"/> <parameter name="wsdlTargetNamespace" value="http://ws.sosnoski.com/wsdl/demo"/> <namespace>http://ws.sosnoski.com/wsdl/demo</namespace> <wsdlFile>Demo.wsdl</wsdlFile> <typeMapping xmlns:ns="http://ws.sosnoski.com/schemas/demo" qname="ns:account-history" type="java:com.sosnoski.test.data.AccountHistory" serializer="com.aexp.wsaf.axis.jibx.JibxSerializerFactory" deserializer="com.aexp.wsaf.axis.jibx.JibxDeserializerFactory" encodingStyle=""></typeMapping> <typeMapping xmlns:ns="http://ws.sosnoski.com/schemas/demo" qname="ns:tx-details" type="java:com.sosnoski.test.data.TxDetails" serializer="com.aexp.wsaf.axis.jibx.JibxSerializerFactory" deserializer="com.aexp.wsaf.axis.jibx.JibxDeserializerFactory" encodingStyle=""></typeMapping> <typeMapping xmlns:ns="http://ws.sosnoski.com/wsdl/demo" qname="ns:ProcessFault" type="java:com.sosnoski.test.data.ProcessFault" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""></typeMapping> <typeMapping xmlns:ns="http://ws.sosnoski.com/wsdl/demo" qname="ns:RemoteFault" type="java:com.sosnoski.test.data.RemoteFault" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""></typeMapping> </service>
Ideally I want make this above configuration work when this ejb web service deployed on any application server like WebSphere 5.0 etc. and
so I dont't want to use application server provider and if I try below code
<service name="Demo" provider="java:EJB" style="wrapped" use="literal"> <parameter name="beanJndiName" value="ejb/Demo"/> <parameter name="homeInterfaceName" value="com.sosnoski.test.interfaces.DemoHome"/> <parameter name="remoteInterfaceName" value="com.sosnoski.test.interfaces.Demo"/> <parameter name="allowedMethods" value="getAccountHistory"/> <parameter name="className" value="com.sosnoski.test.ejb.DemoBean"/> <parameter name="jndiURL" value="jnp://localhost:1099"/> <parameter name="jndiContextClass" value="org.jnp.interfaces.NamingContextFactory"/> <parameter name="wsdlPortType" value="DemoInterface"/> <parameter name="wsdlServicePort" value="Demo"/> <parameter name="wsdlTargetNamespace" value="http://ws.sosnoski.com/wsdl/demo"/> <namespace>http://ws.sosnoski.com/wsdl/demo</namespace> <wsdlFile>Demo.wsdl</wsdlFile> <typeMapping xmlns:ns="http://ws.sosnoski.com/schemas/demo" qname="ns:account-history" type="java:com.sosnoski.test.data.AccountHistory" serializer="com.aexp.wsaf.axis.jibx.JibxSerializerFactory" deserializer="com.aexp.wsaf.axis.jibx.JibxDeserializerFactory" encodingStyle=""></typeMapping> <typeMapping xmlns:ns="http://ws.sosnoski.com/schemas/demo" qname="ns:tx-details" type="java:com.sosnoski.test.data.TxDetails" serializer="com.aexp.wsaf.axis.jibx.JibxSerializerFactory" deserializer="com.aexp.wsaf.axis.jibx.JibxDeserializerFactory" encodingStyle=""></typeMapping> <typeMapping xmlns:ns="http://ws.sosnoski.com/wsdl/demo" qname="ns:ProcessFault" type="java:com.sosnoski.test.data.ProcessFault" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""></typeMapping> <typeMapping xmlns:ns="http://ws.sosnoski.com/wsdl/demo" qname="ns:RemoteFault" type="java:com.sosnoski.test.data.RemoteFault" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""></typeMapping> </service>
I am getting below exception :
Exception - org.apache.axis.ConfigurationException: org.apache.axis.deployment.wsdd.WSDDException: No provider type matches QName '{http://xml.apache.org/axis/wsdd/providers/java}EJB'
org.apache.axis.deployment.wsdd.WSDDException: No provider type matches QName '{http://xml.apache.org/axis/wsdd/providers/java}EJB'
at org.apache.axis.deployment.wsdd.WSDDProvider.getInstance(WSDDProvider.java:204)
at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:492)
at org.apache.axis.deployment.wsdd.WSDDDeployment.getDeployedServices(WSDDDeployment.java:617)
at org.apache.axis.configuration.FileProvider.getDeployedServices(FileProvider.java:356)
at org.apache.axis.transport.http.AxisServlet.reportAvailableServices(AxisServlet.java:744)
at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:252)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:370)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Can anyone please help me in making this ejb web service deployment configuration using axis generic and not tied to
any application server ?
Thanks & Regards,
Kumar.