axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Gainty <mgai...@hotmail.com>
Subject RE: Hibernate Integration
Date Tue, 19 Oct 2010 00:38:19 GMT

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: daniel.pomrehn@googlemail.com
To: java-user@axis.apache.org

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 		 	   		  
Mime
View raw message