Eddie,

here are some notes I have about Axis EJB services;


Deploying AXIS (beta 1) EJB services on Orion
---------------------------------------------

1./ To deploy axis as a separate application within a single instance of
Orion configure and deploy the Axis servlet as normal

2./ Add an ejb-ref entry to the Axis web.xml file, notice that the
<ejb-ref-name> tag does not include 'ejb/'

<ejb-ref>
  <description></description>
  <ejb-ref-name>Foo</ejb-ref-name>
  <ejb-ref-type>Session</ejb-ref-type>
  <home>com.foo.FooHome</home>
  <remote>com.foo.Foo</remote>
  <ejb-link>Foo</ejb-link>
</ejb-ref>

3./ Modify the Orion /conf/server.xml entry for Axis to include the parent
tag;

<application name="<EJB App name>" path="<app path>" auto-start="true" />
<application name="axis" path="<axis path>" parent="<EJB App name>"
auto-start="true" />

NOTE: this is Orion specific :-(

To access an application deployed on a different server see
http://kb.atlassian.com/content/orion/docs/remote-access/remote-access.html
for server configuration details.

4./ Test the Axis deployment with something like
http://localhost/axis/services/Version?wsdl this should return the wsdl
details for the Axis version service.  Now create a deploy.wsdl file for
your entity bean in the form below and deploy it using
org.apache.axis.client.AdminClient.

If everything worked you should be able to access its wsdl details with
http://localhost/axis/services/<SOAP service name>?wsdl

NOTE: if you comment the remoteInterfaceName parameter this check will only
work if the JNDI lookup is successful if it is not commented it will always
work if the remoteInterfaceName class is in the classpath.


AXIS server deploy.wsdl file
---------------------------------

<deployment xmlns="http://xml.apache.org/axis/wsdd/";
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
  <service name="<SOAP service name>" provider="java:EJB">
    <parameter name="beanJndiName"  value="<EJB JNDI name>"/>
    <parameter name="homeInterfaceName"  value="<EJB home interface class
name>"/>
    <parameter name="remoteInterfaceName" value="<EJB remote interface class
name>"/>
    <parameter name="className" value="<EJB remote interface class name>"/>
    <parameter name="allowedMethods" value="*"/>
  </service>
</deployment>

Hope this helps :-)

Evan


Hellu,

Please some help on my problem below as I can't continue and don't really
know what to do.

Eddie


>From: "Eddie" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: <[EMAIL PROTECTED]>
>Subject: Re: Connecting to stateless Session EJB, Lookup error.
>Date: Tue, 19 Mar 2002 13:17:20 +0100
>
>Hellu,
>
>Thanks for all the response.
>I tried the correct URL syntax (three ///) but still get the naming
>exception.
>If I, however put the following line in the orion-web.xml:
>----
>  <ejb-ref-mapping name="ejb/UserManager"
>location="java:comp/env/ejb/UserManager" />
>-----
>
>Which I already had, withou the location attribute, Orion doesn't give
>naming exception, but an internal server error.
>If I then look in the Orion application log of axis I see all kinds of
>lookups followed by a Stackoverflow :(:
>---------------
>         at com.evermind[Orion/1.5.4 (build 10585)]._bm._es(.:121)
>         at com.evermind[Orion/1.5.4 (build 10585)]._bm.lookup(.:63
>
>         at com.evermind[Orion/1.5.4 (build 10585)]._cqb._pu(.:36)
>         at com.evermind[Orion/1.5.4 (build 10585)]._lj.lookup(.:53
>---------------
>
>So what am I doing wrong, or what is happening here ? I am a bit lost here,
>so please some help.
>
>BTW:  On page:
>http://kb.atlassian.com/content/tutorials/finsiel/ejbsoap.jsp
>they do explain how to access Orion EJB with Apache Soap, but how do I use
>this with Axis ?
>
>Isn't there anyone that has an example of Orion EJB access with Axis ?
>
>Does it help if I use the beta version of Axis (I am using alpha 3)
>
>Eddie
>
>----- Original Message -----
>From: "Eddie Post" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Cc: <[EMAIL PROTECTED]>
>Sent: Monday, March 18, 2002 1:06 PM
>Subject: Connecting to stateless Session EJB, Lookup error.
>
>
> > Hellu,
> >
> > I am trying to connect to my EJB in Orion 1.5.4 through Apache Axis.
> > I configured everyting like in the mail that I found in the mailinglist:
> > http://marc.theaimsgroup.com/?l=axis-user&m=100879873023841&w=2
> >
> > However, I do get the NamingException (see below) when my test-client
>tries
> > to invoke the EJB method.
> > Please some help or example ?
> >
> > What I did:
> > 1) deployed it with the deploy.xml below.
> > 2) Put a EJB ref in the axis web.xml, see below.
> > 3) Put a jndi.properties in the Axis WEB-INF dir, see below (also tried
>the
> > Axis META dir)
> > 4) Put a class-path entry in the orion-web-xml file of axis, see below.
> > 5) Put a library-path entry in the orion-application-xml file of axis,
>see
> > below.
> >
> > Eddie
> >
> >
> > Note:
> > a) the jndi file works with a direct client.
> > b) Axis works with just one class.
> > c) In the mailing list example they use "file:///C:/...." (three
>slashes),
> > which isn't correct, not ??
> > d) In the mailing list example they use "location" in the orion-web.xml,
> > which I don't think is necessary, not ? (I never use it with my J2EE
> > applications). If I use it Orion gives an syntax error.
> >
> > Librarypath entry in the orion-application.xml file:
> > ------------
> > <library path="file://C:/Program
> > Files/Orion_apps/lib/java/Soap/axis/WEB-INF/jndi.properties" />
> > ------------
> >
> > Classpath entry in orion-web.xml:
> > ----------
> > <classpath path="file://C:/Program
> > Files/Orion_apps/lib/java/Soap/axis/WEB-INF/jndi.properties" />
> > -----------
> >
> >
> > jndi.properties file:
> > ---------------
> >
>java.naming.factory.initial=com.evermind.server.ApplicationClientInitialCon
t
>extFactory
> > java.naming.provider.url=ormi://localhost/sgs
> > java.naming.security.principal=user
> > java.naming.security.credentials=12345
> > ---------------
> >
> >
> > EJB ref in web.xml of axis:
> > ------------
> > <ejb-ref>
> > <description> User Manager of SGS </description>
> > <ejb-ref-name>ejb/UserManager</ejb-ref-name>
> > <ejb-ref-type>Session</ejb-ref-type>
> > <home>nl.unwired.sgs.um.UserManagerHome</home>
> > <remote>nl.unwired.sgs.um.UserManager</remote>
> > <ejb-link>UserManager</ejb-link>
> > </ejb-ref>
> > ------------
> >
> >
> > deploy.xml:
> > -------------
> > <deployment xmlns="http://xml.apache.org/axis/wsdd/";
> > xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
> > <service name="UserManager" provider="java:EJB">
> > <parameter name="beanJndiName"  value="java:comp/env/ejb/UserManager"/>
> > <parameter name="className" value="nl.unwired.sgs.um.UserManager"/>
> > <parameter name="allowedMethods" value="getAllUsersFromAccount"/>
> > </service>
> > </deployment>
> > -------------
> >
> >
> > Soap error:
> > -------------
> > C:\samples\ed>java -cp .;axis.jar;log4j-core.jar;crimson.jar;jaxp.jar
> > ClientEjb 0
> > Exception in thread "main" javax.naming.NamingException: Error inst
> > antiating web-app JNDI-context: No location specified and no suitab
> > le instance of the type 'nl.unwired.sgs.um.UserManager' found for t
> > he ejb-ref ejb/UserManager
> >         at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAP
> > FaultBuilder.java:134)
> >         at org.apache.axis.encoding.DeserializationContext.endEleme
> > nt(DeserializationContext.java:671)
> >         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.j
> > ava:1528)
> >         at org.apache.crimson.parser.Parser2.content(Parser2.java:1
> > 779)
> >         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.j
> > ava:1507)
> >         at org.apache.crimson.parser.Parser2.content(Parser2.java:1
> > 779)
> >         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.j
> > ava:1507)
> >         at org.apache.crimson.parser.Parser2.parseInternal(Parser2.
> > java:500)
> >         at org.apache.crimson.parser.Parser2.parse(Parser2.java:305
> > )
> >         at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderI
> > mpl.java:442)
> >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:393)
> >         at org.apache.axis.encoding.DeserializationContext.parse(De
> > serializationContext.java:204)
> >         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java
> > :378)
> >         at org.apache.axis.client.Call.invoke(Call.java:1268)
> >         at org.apache.axis.client.Call.invoke(Call.java:1113)
> >         at org.apache.axis.client.Call.invoke(Call.java:1043)
> >         at org.apache.axis.client.ServiceClient.invoke(ServiceClien
> > t.java:456)
> >         at ClientEjb.main(ClientEjb.java:11)
> > -----------
> >
> > _________________________________________________________________
> > Join the world's largest e-mail service with MSN Hotmail.
> > http://www.hotmail.com
> >
> >
>
>
>
>
>
>


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.

Reply via email to