axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Isley <ericis...@gmail.com>
Subject Re: Axis2 And Hibernate
Date Sat, 31 Oct 2009 02:27:09 GMT
Hi,

I had a similar issue recently while trying to configure and use
iBatis with an Axis2 web service.  I posted a similar thread but never
got any responses.  From what I understand it's not finding your
hibernate configuration because of the way the classloading is
happening inside the web service.  If you add the following line to
your services.xml file under the <service> node it should work:

<parameter name="ServiceTCCL">composite</parameter>

You can read about this at: http://wso2.org/blog/dims/1131

Once I did that my iBatis config files could be loaded but then I lost
the JNDI datasource that I had set up and I decided that I would
rather have connection pooling from the Tomcat server than use iBatis.
 I wish there was a way to easily include .properties files and .xml
files onto the classpath from inside the .aar automatically so it
didn't just ignore them.  Once you set that parameter see if you can
use a datasource lookup.

Good luck!


On Thu, Oct 29, 2009 at 6:40 AM, dpeinador <dampe2001@yahoo.es> wrote:
>
> Hello all,
>
> I continue trying to fix the mis configuration. I have isolated the Web
> service, First I have create a dummy Echo Web service, and when this Web
> service has been working. I hav added the hibernate classes.
>
> This is the Echo Class (Echo,java):
>
> package com.autentia.ws.servidor;
>
> import com.db.PoiManager;
> import java.util.List;
>
> public class Echo {
>        public String hello(String nombre) {
>                PoiManager pm = new PoiManager();
>                List l = pm.listPois();
>                return "Hola " + nombre + ". Numero de POIs: " + l.size();
>        }
> }
>
> And the Poi classes:
>
> PoiManager.java:
>
> package com.db;
>
> import java.util.List;
> import org.hibernate.HibernateException;
> import org.hibernate.SessionFactory;
> import org.hibernate.Transaction;
> import org.hibernate.cfg.Configuration;
> import org.hibernate.classic.Session;
>
> public class PoiManager {
>        private SessionFactory sessionFactory;
>
>        public PoiManager() {
>                try {
>                        System.out.println("Inicalizando Hibernate");
>                        sessionFactory = new Configuration().configure().buildSessionFactory();
>                        System.out.println("terminado la inicializacion de
Hibernate");
>                } catch (HibernateException e) {
>                        e.printStackTrace();
>                }
>        }
>
>        public List listPois() {
>                try {
>                        Session session = sessionFactory.openSession();
>                        Transaction tx = session.beginTransaction();
>                        List result = session.find("from poi");
>                        tx.commit();
>                        session.close();
>                        return result;
>                } catch (HibernateException e) {
>                        throw new RuntimeException(e.getMessage());
>                }
>        }
> }
>
> Poi.java:
> public class Poi {
>        private Long idItem;
>        private String descripcion;
>
>        public Long getIdItem() {
>                return idItem;
>        }
>        public void setIdItem(Long idItem) {
>                this.idItem = idItem;
>        }
>        public String getDescripcion() {
>                return descripcion;
>        }
>        public void setDescripcion(String descripcion) {
>                this.descripcion = descripcion;
>        }
>
> }
>
> This is my Poi.hbm.xml file:
> <?xml version="1.0"?>
> <!DOCTYPE hibernate-mapping PUBLIC
> "-//hibernate/hibernate Mapping DTD 2.0//EN"
> "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
> <hibernate-mapping>
>        <class name="com.cb.Poi" table="poi">
>        <id name="id" column="IDITEM" type="long">
>        <generator class="identity"/>
>        </id>
>        <property name="descripcion" column="DESCRIPCION" type="string"/>
>        </class>
> </hibernate-mapping>
>
> I have created also the hibernate.cfg.xml file and I have put it in the
> WEB_INF/classes Axis directory:
>
> <?xml version='1.0' encoding='utf-8'?>
> <!DOCTYPE hibernate-configuration
> PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
> "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
> <hibernate-configuration>
>        <session-factory>
>                <property
> name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
>        <property name="hibernate.connection.url">
> jdbc:hsqldb://192.168.0.XX:3306/mydb?useUnicode=true&amp;characterEncoding=UTF-8</property>
>        <property name="hibernate.connection.username">user</property>
>        <property name="hibernate.connection.password">password</property>
>                <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
>                <property name="show_sql">true</property>
>                <property
> name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
>                <property
> name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
>                <property name="hibernate.hbm2ddl.auto">update</property>
>                <mapping resource="com/db/data/Poi.hbm.xml"/>
>        </session-factory>
> </hibernate-configuration>
>
> Whit this classes I build the .aar file, I upload it and create the client
> from the wsdl file. When I execute the client I receive this log:
>
> [INFO] Hibernate 3.1
> [INFO] hibernate.properties not found
> [INFO] using CGLIB reflection optimizer
> [INFO] using JDK 1.4 java.sql.Timestamp handling
> [INFO] configuring from resource: /hibernate.cfg.xml
> [INFO] Configuration resource: /hibernate.cfg.xml
> [INFO] Reading mappings from resource: com/db/data/Poi.hbm.xml
> org.hibernate.MappingException: Resource: com/db/data/Poi.hbm.xml not found
>        at
> org.hibernate.cfg.Configuration.addResource(Configuration.java:478)
>        at
> org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1443)
>        at
> org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1411)
>        at
> org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1392)
>        at
> org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1368)
>        at
> org.hibernate.cfg.Configuration.configure(Configuration.java:1288)
>        at
> org.hibernate.cfg.Configuration.configure(Configuration.java:1274)
>        at com.db.PoiManager.<init>(PoiManager.java:16)
>        at com.autentia.ws.servidor.Echo.saludar(Echo.java:25)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:585)
>        at
> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:194)
>        at
> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
>        at
> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>        at
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
>        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
>        at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
>        at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
>        at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>        at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>        at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>        at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>        at java.lang.Thread.run(Thread.java:595)
> [ERROR] Exception occurred while trying to invoke service method saludar
> java.lang.reflect.InvocationTargetException
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:585)
>        at
> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:194)
>        at
> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
>        at
> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>        at
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
>        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
>        at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
>        at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
>        at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>        at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>        at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>        at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>        at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>        at com.db.PoiManager.listPois(PoiManager.java:25)
>        at com.autentia.ws.servidor.Echo.saludar(Echo.java:26)
>        ... 27 more
> [ERROR] Exception occurred while trying to invoke service method saludar
> org.apache.axis2.AxisFault: Exception occurred while trying to invoke
> service method saludar
>        at
> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:158)
>        at
> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>        at
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
>        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
>        at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
>        at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
>        at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>        at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>        at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>        at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>        at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.reflect.InvocationTargetException
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:585)
>        at
> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:194)
>        at
> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
>        ... 21 more
> Caused by: java.lang.NullPointerException
>        at com.db.PoiManager.listPois(PoiManager.java:25)
>        at com.autentia.ws.servidor.Echo.saludar(Echo.java:26)
>        ... 27 more
>
> Can you advice me about to fix this issue? Are there any oter way to access
> to the database?
> --
> View this message in context: http://www.nabble.com/Axis2-And-Hibernate-tp26080197p26111476.html
> Sent from the Axis - User mailing list archive at Nabble.com.
>

Mime
View raw message