我通过遵循Rational Application Developer for WebSphere 8.0.4帮助中的Tutorial,从WSDL文件创建了JAX-WS Web服务和EJB框架。
它创建了一个EJB项目来包含我的EJB代码。 它创建了一个EJBEar项目来构建一个ear文件。 它创建了一个RouterWebProject来创建一个war文件。
RouterWebProject提供servlet信息,以便我可以将HTTP soap请求发送到servlet,以便路由到EJB中的Web服务代码。
EJB服务代码调用同一EJB项目中的一个类,该项目使用ResourceBundle读取名为AppSDKExamples.properties的属性文件
static {
ResourceBundle props = ResourceBundle.getBundle("AppSDKExamples", Locale.getDefault());
brokerPartnerId = props.getString("broker.partner.id");
buyPartnerId = props.getString("svc.dealer.partner.id");
sellPartnerId = props.getString("platform.partner.id");
sellPartnerId2 = props.getString("platform.partner.id2");
accountNumber = props.getString("account.number");
}
我尝试将AppSDKExamples.properties文件放在我能想到的任何地方,但我总是得到一个java.util.MissingResourceException。
如何使此属性文件可用于EJB代码?
目前,EJB耳朵看起来像这样:
EJB.jar看起来像这样:
war文件如下所示:
对此的任何帮助将不胜感激。 感谢。
答案 0 :(得分:2)
如果属性文件位于EJB的根目录,那么EJB类应该能够找到属性文件。如果您在启用Java 2安全性的情况下运行,那么您需要授予FilePermission;请参阅$ {webComponent}和$ {ejbComponent}的PROFILE_HOME / config / cells / CELL / nodes / NODE / app.policy。
简单地将属性文件放在EAR / lib中是行不通的,因为EAR / lib /目录不在类路径上,只有其中的.jar文件在类路径上。将Class-Path: lib/
添加到EJB jar MANIFEST.MF可能会有效,但JavaEE规范不要求目录类路径,因此我不知道它们是否受WebSphere Application Server支持。
直接在MANIFEST.MF Class-Path中引用属性文件也不起作用,因为只支持JAR和目录(参见上面有关目录的JavaEE警告)。
通常,最好从/lib
中删除前导斜杠。从JavaEE平台规范中不清楚这是应该引用EAR中的lib
目录还是引用机器文件系统根目录中的目录。