伙计们从Tomcat迁移到WAS时遇到了问题。这是问题所在。我在tomcat上下文中有这样的资源:

<Resource name="serverConnectorType"
              auth="Container"
              factory="org.apache.naming.factory.BeanFactory"
              type="com.vdsirotkin.service.ServerConnectorType"
              url="http://someip:9080/sfs/sfs/"
              connectorType="SOAP"
            />


一些解释。我需要从资源中填充此类,并且我一直在使用BeanFactory来做到这一点。现在我需要迁移到WAS。
所以,这是问题。在WAS中有什么方法可以做同样的事情吗?

最佳答案

BeanFactory没有直接的等效项,但是WAS Liberty确实支持JNDI的对象工厂,因此您可以编写等效于BeanFactory并使用如下配置:

<jndiObjectFactory id="beanFactory" className="com.example.BeanFactory" libraryRef="beanFactoryClasses"/>
<jndiReferenceEntry factoryRef="beanFactory" jndiName="serverConnectorType">
    <properties className="com.vdsirotkin.service.ServerConnectorType" myProp="value"/>
</jndiReferenceEntry>


ObjectFactory将为properties元素上的每个属性获取一个带有StringRefAddr的JNDI引用。类型将是属性名称,内容将是值。

10-06 09:21