为 WebSphere 上的 Web 模块复制了环境条目
Environment entry duplicated for Web module on WebSphere
我的ear
包含一个EJB模块和一个Web模块。 EJB 模块中的一个单例 EJB 有一个用 @Resource
:
注释的字符串字段
@Resource(name = "lecmConfigServiceLookupName")
private String lecmConfigServiceLookupName;
META-INF/ejb-jar.xml 指定此环境条目的映射:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"
version="3.1">
<enterprise-beans>
<session id="ConfigSingleton">
<ejb-name>ConfigSingleton</ejb-name>
<ejb-class>ru.brbpm.custom_search_ejb.ConfigSingleton</ejb-class>
<session-type>Singleton</session-type>
<init-on-startup>true</init-on-startup>
<env-entry>
<env-entry-name>lecmConfigServiceLookupName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>ejb/lecm/common-service.jar/ConfigServiceImpl#ru.brbpm.lecm.shared.api.ConfigServiceRemote</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
</ejb-jar>
当我开始将 ear 部署到 WebSphere 8.5.5.3 时,我看到两个相同的环境条目 - 一个用于 EJB 模块,另一个用于 Web 模块:
web 模块的条目也没有默认值,将 ejb-jar.xml 添加到 WEB-INF 文件夹也无济于事。
如何删除 Web 模块的环境条目或至少为其提供默认值?只要未指定 Web 模块的条目,应用程序就不会启动。
搞清楚了 - 原来 Web 模块对 EJB 模块的 ejb-client
有一个不必要的传递依赖。 WebSphere 正在检测 Web 模块的 WEB-INF/lib.
中的 ejb-client.jar 中的 EJB
我的ear
包含一个EJB模块和一个Web模块。 EJB 模块中的一个单例 EJB 有一个用 @Resource
:
@Resource(name = "lecmConfigServiceLookupName")
private String lecmConfigServiceLookupName;
META-INF/ejb-jar.xml 指定此环境条目的映射:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"
version="3.1">
<enterprise-beans>
<session id="ConfigSingleton">
<ejb-name>ConfigSingleton</ejb-name>
<ejb-class>ru.brbpm.custom_search_ejb.ConfigSingleton</ejb-class>
<session-type>Singleton</session-type>
<init-on-startup>true</init-on-startup>
<env-entry>
<env-entry-name>lecmConfigServiceLookupName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>ejb/lecm/common-service.jar/ConfigServiceImpl#ru.brbpm.lecm.shared.api.ConfigServiceRemote</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
</ejb-jar>
当我开始将 ear 部署到 WebSphere 8.5.5.3 时,我看到两个相同的环境条目 - 一个用于 EJB 模块,另一个用于 Web 模块:
web 模块的条目也没有默认值,将 ejb-jar.xml 添加到 WEB-INF 文件夹也无济于事。
如何删除 Web 模块的环境条目或至少为其提供默认值?只要未指定 Web 模块的条目,应用程序就不会启动。
搞清楚了 - 原来 Web 模块对 EJB 模块的 ejb-client
有一个不必要的传递依赖。 WebSphere 正在检测 Web 模块的 WEB-INF/lib.