Hi,

Thanks Frederick, and boostcom.no for your answers to my previous post.

Now, I implemented a session EJB, and deployed it using a .WSR within a
.EAR. JBoss 3 Final starts up with no error msg, but the web service doesn't
function.

Other than configuring the web-service.xml, I have no control, such as
viewing the generated code for the stub, and the serializer, to my web
service, Region. Do I need any custom (or Axis generated) code in the .WSR?

I wrote a M$ .NET client, but got the following error msg. My client code
works if I re-write the session bean code as a Java class, and deploy it
using the standalone Axis.

Since the whole thing is quiet new, may I know more about JBoss.net's
structure (its file distribution structure) comparing to the standalone
Axis? Thanks very much

---
M$ .NET error msg (using the WSDL produced by
org.apache.axis.wsdl.Java2WSDL)
============================================================================
=

An unhandled exception of type 'System.Web.Services.Protocols.SoapException'
occurred in system.web.services.dll

Additional information: The AXIS engine could not find a target service to
invoke!  targetService is Region

---
Axis Loaded
===========

15:46:37,557 INFO  [Server] JBoss (MX MicroKernel) [3.0.0 Date:200205311035]
Started in 0m:50s:192ms
15:46:50,205 INFO  [Jetty] JBossAxisServlet: init

---
Region Deployed
===============

request: http://localhost:8080/axis/services/Region

reply:
/axis/services/Region
Hi there, this is an AXIS service!

Perhaps there will be a form for invoking the service here...

---
Attempt to get WSDL
===================

request: http://localhost:8080/axis/services/Region?wsdl

reply:
AXIS error
Sorry, something seems to have gone wrong... here are the details:

The AXIS engine could not find a target service to invoke!  targetService is
Region

---
web-service.xml
===============

<?xml version="1.0" encoding="UTF-8"?>

<!-- This Web Service Descriptor has been generated by XDoclet/Jbossnet -->

<deployment name="esb"
 xmlns="http://xml.apache.org/axis/wsdd/";
 targetNamespace="http://services.esb";
 xmlns:esb="http://services.esb";
 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
   <service name="Region"
       provider="Handler">
       <parameter name="handlerClass"
value="org.jboss.net.axis.server.EJBProvider"/>
       <parameter name="beanJndiName" value="Region"/>
    <parameter name="allowedMethods" value="*"/>
                  <requestFlow name="RegionRequest">
         <handler
type="java:org.jboss.net.axis.server.TransactionRequestHandler"/>
        </requestFlow>
        <responseFlow name="RegionResponse">
         <handler
type="java:org.jboss.net.axis.server.SerialisationResponseHandler"/>
         <handler
type="java:org.jboss.net.axis.server.TransactionResponseHandler"/>
        </responseFlow>
   </service>

</deployment>

---
RegionBean.java
===============

package esb.ejb;

import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

/**
 * @ejb:bean name="Region"
 *           jndi-name="Region"
 *           type="Stateless"
 *           view-type="local"
 * @ejb:ejb-ref ejb-name="Region"
 *              view-type="local"
 *              ref-name="Region"
 * @ejb:transaction type="Required"
 * @ejb:transaction-type type="Container"
 *
 * @jboss-net:web-service urn="Region"
 *                        expose-all="true"
*/
public class RegionBean implements SessionBean {
  /**
   * @ejb:interface-method view-type="local"
  */
  public Integer createRegion(RegionData regionData) {
    TerritoriesData[] territoriesData = regionData.getTerritoriesData();
    System.out.println("create: " + regionData.getRegionId() + ", " +
regionData.getRegionDescription());
    if (territoriesData != null) {
      for (int i = 0; i < territoriesData.length; i += 1) {
        System.out.println("territoriesData: " +
territoriesData[i].getTerritoryId() + ", " +
territoriesData[i].getTerritoryDescription());
      }
    }
    return new Integer(1);
  }

  /**
   * @ejb:interface-method view-type="local"
  */
  public void setRegion(RegionData regionData) {
    TerritoriesData[] territoriesData = regionData.getTerritoriesData();
    System.out.println("set: " + regionData.getRegionId() + ", " +
regionData.getRegionDescription());
    if (territoriesData != null) {
      for (int i = 0; i < territoriesData.length; i += 1) {
        System.out.println("territoriesData: " +
territoriesData[i].getTerritoryId() + ", " +
territoriesData[i].getTerritoryDescription());
      }
    }
  }

  /**
   * @ejb:interface-method view-type="local"
  */
  public RegionData getRegion(Integer regionId) {
    System.out.println("get: " + regionId);
    RegionData dataHolder = new RegionData();
    dataHolder.setRegionId(new Integer(1));
    dataHolder.setRegionDescription("Canada");
    return dataHolder;
  }

  /**
   * @ejb:interface-method view-type="local"
  */
  public void removeRegion(Integer regionId) {
    System.out.println("remove: " + regionId);
  }

  public void ejbCreate() throws CreateException {}

  public void setSessionContext( SessionContext sessionContext ) {}

  public void ejbActivate() {}

  public void ejbPassivate() {}

  public void ejbRemove() {}
}



_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - 
http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to