我正在使用 Axis2 编写要部署在 Tomcat 上的 Web 服务。我正在使用 Hibernate3 在 Web 服务和 MySQL 数据库之间保存数据。
当通过 IDE 运行应用程序时,我通过 Axis2 公开的方法按预期工作,但是当我将 .aar 部署到 Tomcat 时,我收到一个 SOAP 错误,声称找不到 hibernate.cfg.xml。
但是,在 .aar 中,我清楚地看到所有配置文件和所有映射文件都包含在内。
我已经确定了一个解决方法:如果我将生成的文件从 Netbeans build/class 文件夹放入 axis2/WEB-INF/class 文件夹,那么应用程序将按预期工作。
我的问题是,是否有更好的方法来部署我的应用程序,以便 Axis2 可以通过部署的 .aar 获取配置和映射文件,而无需我手动将 build/class 文件夹的内容复制到axis2/WEB-INF/class 文件夹?
最佳答案
在 .aar 存档中应该有一个/META-INF/services.xml 文件。编辑该文件并将 ServiceTCCL 参数设置为复合服务:
<parameter name="ServiceTCCL">composite</parameter>
然后将 hibernate.cfg.xml 放在 .aar 存档中的同一个 META-INF 目录中。这将使配置文件可供 Hibernate 从类路径加载。
关于Axis2 找不到 Hibernate 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2707019/