Hi all,

following a short report about some tests done with JBoss-2.4.4 and
xml-axis (snapshot from January, 20 2002). The first goal was to get a
WSDL generated from an EJB interface (the remote EJB interface). The
second goal was to call methods of the remote EJB interface using SOAP
(JAX-RPC) via axis service. I used the following configuration:

- Tomcat 4.0.1
- xml-axis snapshot
- JBoss 2.4.4
- plus the necessary utility jars, notably Xerces 1.4.1

I did not use the integrated JBoss-Tomcat package but both run in own
JVMs, i.e both systems were started separatly.

To test the whole stuff I used the ubiquitous simple Hello EJB found
in some sample EJB libraries.

During the tests of the whole secenario I found the following problems
and fixed them:

- The EJB provider of axis allows to define the JNDI properties to
  setup the JNDI initial context. One property was missing:
  javax.naming.factory.url.pkgs. The Jboss docs say that this property
  has to be set. Here 2 solutions are possible: use a jndi.properties
  file and copy it in the classpath of the axis service. The other
  solution (that I used): define a new parameter for the EJB
  provider. In the latter case all necessary JNDI properties can be
  defined on a per service basis in the axis depolyment descriptor.
  The modified EJBProvider.java file is contained in the attached ZIP
  (sorry, have no diff available, therefore the whole piece)

- Jboss uses a quite nice and elegant technique to generate the EJB
  home, EJB remote and client proxies. Due to the mechanism axis uses to
  generate the WSDL file _all_ methods of the client EJB proxy are
  generated in the WSDL file. Obviously this is not necessary and
  leads to some confusion. The cure is simple: just set the
  allowedMethod parameter in the service deployment descriptor of the
  EJB based service. 

So, goal one was resolved because I got a resonable WSDL file for my
EJB based service. 

Second goal was achieved too, but only after I fixed the Client code
(copied from userguide/example3) and added the return type to specify
it. Maybe this is just an problem because I use a snapshot where not
every piece of code is in sync.

Regards,
Werner

Attachment: EJBProvider.zip
Description: Zip archive

Reply via email to