伙计们从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引用。类型将是属性名称,内容将是值。