public class Stub extends org.apache.axis.client.Stub implements 
org.apache.axis.sample.echo.Echo 
{
//assume this is the Hibernate call
public String doHibernate()
{
  Session s = environment.getSessionFactory().openSession();
  String in= (String) s.createQuery("select query_column from 
QueryTable").uniqueResult();
  String id=getId(in);
  s.delete( id ); //delete that record
  s.flush();       //flush the session 
  s.connection().commit();  //commit the transaction
  s.close();    //close handles
  return in;
}
 
//assume you have this Axis environment
   static org.apache.axis.description.OperationDesc [] _operations = new 
org.apache.axis.description.OperationDesc[4];
      static {
        _operations = new org.apache.axis.description.OperationDesc[4];
        _initOperationDesc1();  //init the first operation
    } 
 
//intialise the operation
 private static void _initOperationDesc1()
 {
        org.apache.axis.description.OperationDesc oper;
        oper = new org.apache.axis.description.OperationDesc();
        oper.setName("echoString");   //set the name of the operation
 
//add parameters
        oper.addParameter(new javax.xml.namespace.QName("", "in"), new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"), 
java.lang.String.class, org.apache.axis.description.ParameterDesc.IN, false, 
false);
 
//declare String return type
        oper.setReturnType(new 
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema";, "string"));
//declare the returned class
        oper.setReturnClass(java.lang.String.class);
        oper.setReturnQName(new javax.xml.namespace.QName("", 
"echoStringReturn"));
        oper.setStyle(org.apache.axis.enum.Style.RPC);
        oper.setUse(org.apache.axis.enum.Use.ENCODED);
        _operations[0] = oper;
 
       org.apache.axis.client.Call _call = createCall(); //see below

        _call.setOperation(_operations[0]); //set the operation for the call to 
point to OperationDesc
        _call.setUseSOAPAction(true);
        _call.setSOAPActionURI("");
        
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
 
//set the operationName
        _call.setOperationName(new 
javax.xml.namespace.QName("http://axis.apache.org/sample/echo";, "echoString"));
//push the call onto the Request Headers
        setRequestHeaders(_call);
        setAttachments(_call);
        String in=doHibernate();
        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in});
    }
 
    private org.apache.axis.client.Call createCall() throws 
java.rmi.RemoteException {
        try {
            org.apache.axis.client.Call _call =
                    (org.apache.axis.client.Call) super.service.createCall();
   _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, 
Boolean.FALSE);
            if (super.maintainSessionSet) {
                _call.setMaintainSession(super.maintainSession);
            }
            if (super.cachedUsername != null) {
                _call.setUsername(super.cachedUsername);
            }
            if (super.cachedPassword != null) {
                _call.setPassword(super.cachedPassword);
            }
            if (super.cachedEndpoint != null) {
                _call.setTargetEndpointAddress(super.cachedEndpoint);
            }
            if (super.cachedTimeout != null) {
                _call.setTimeout(super.cachedTimeout);
            }
            if (super.cachedPortName != null) {
                _call.setPortName(super.cachedPortName);
            }
            java.util.Enumeration keys = super.cachedProperties.keys();
            while (keys.hasMoreElements()) {
                java.lang.String key = (java.lang.String) keys.nextElement();
                _call.setProperty(key, super.cachedProperties.get(key));
            }
            // All the type mapping information is registered
            // when the first call is made.
            // The type mapping information is actually registered in
            // the TypeMappingRegistry of the service, which
            // is the reason why registration is only needed for the first call.
            synchronized (this) {
                if (firstCall()) {
                    // must set encoding style before registering serializers
                    
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
                    
_call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC);
                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
                        java.lang.Class cls = (java.lang.Class) 
cachedSerClasses.get(i);
                        javax.xml.namespace.QName qName =
                                (javax.xml.namespace.QName) 
cachedSerQNames.get(i);
                        java.lang.Class sf = (java.lang.Class)
                                 cachedSerFactories.get(i);
                        java.lang.Class df = (java.lang.Class)
                                 cachedDeserFactories.get(i);
                        _call.registerTypeMapping(cls, qName, sf, df, false);
                    }
                }
            }
            return _call;
        }
        catch (java.lang.Throwable _t) {
            throw new org.apache.axis.AxisFault("Failure trying to get the Call 
object", _t);
        }
    } //end createCall

}  //end stub

Martin Gainty 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité

Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger 
sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung 
oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem 
Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. 
Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung 
fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le 
destinataire prévu, nous te demandons avec bonté que pour satisfaire informez 
l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est 
interdite. Ce message sert à l'information seulement et n'aura pas n'importe 
quel effet légalement obligatoire. Étant donné que les email peuvent facilement 
être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité 
pour le contenu fourni.



 



Date: Mon, 18 Oct 2010 23:13:25 +0200
Subject: Hibernate Integration
From: [email protected]
To: [email protected]

Hi! 


Does anyone know a good tutorial or example of how to integrated hibernate into 
an axis2 Webservice best? 
The webservice should collect Information via hibernate out of a MySQL 
Database. The functions of the webservice should return integer Values, not the 
Database Objects.


Thank you in advance! 
Best regards
Daniel                                    

Reply via email to