2010-04-25 96 views
1

我正在使用Axis2编写一个要部署在Tomcat上的Web服务。我使用Hibernate3在Web服务和MySQL数据库之间保存数据。Axis2未找到Hibernate配置文件

当通过IDE运行应用程序时,我通过Axis2公开的方法按预期运行,但是,当将.aar部署到Tomcat时,我收到一个SOAP错误,声称无法找到hibernate.cfg.xml。

但是,在.aar中,我清楚地看到包含了所有配置文件和所有映射文件。

我已经确定了一个解决方法:如果将生成的文件从Netbeans build/class文件夹放入axis2/WEB-INF/class文件夹,则该应用程序按预期工作。

我的问题是,是否有更好的方式来部署我的应用程序,以便Axis2可以通过已部署的.aar选取配置文件和映射文件,而无需手动将build/class文件夹的内容复制到axis2/WEB-INF/class文件夹?

回答

1

在.aar归档中应该有一个/META-INF/services.xml文件。编辑该文件,并设置ServiceTCCL参数组合为您服务:

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

然后把hibernate.cfg.xml文件在同一META-INF目录下的.aar档案内。这将使配置文件可用于Hibernate从类路径加载。

+0

我似乎失去了容器宽(jboss)jndi上下文。我的InitialContext.lookup(“java:comp/UserTransaction”) 返回null。如何获取容器级别上下文? – 2011-06-02 15:40:43