如何在Web模块中“重新设置”应用程序资源? 我的EAR结构就像(我认为的标准结构):
EAR
+-----Web Module
+-----EJB Module
+-----Utility JAR Module
现在,我想要实现的是在应用程序级别定义资源并在每个模块中使用它们。 我尝试过这种配置但没有成功:
application.xml中
...
<resource-ref>
<description>my file properties</description>
<res-ref-name>url/myUrl</res-ref-name>
<res-type>java.net.URL</res-type>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
IBM-应用bnd.xml
...
<resource-ref name="url/realJndiName" binding-name="url/myUrl" />
网络模块类
@WebService
public class MyClass {
@Resource(name="url/myUrl")
URL myUrl;
....
}
但是注射失败了。 该怎么做?当然,如果我在app.xml中移动资源定义(带有绑定)一切正常,但是我应该在ejb-jar.xml上移动资源,以便使用它的EACH ejb ......
任何提示?
由于
答案 0 :(得分:0)
ibm-application-bnd.xml
适用于java:app
中定义的java:global
和application.xml
引用,而不是应用程序中任何位置定义的引用。如果要声明单个引用并使所有组件(servlet,EJB等)共享相同的引用,那么该方法可以正常工作。如果您希望每个组件都有唯一的引用,那么您需要单独声明引用并使用ibm-ejb-jar-bnd.xml
,ibm-web-bnd.xml
等中的每个组件绑定。