Java Weblogic 8.1上的Spring调用远程EJB
我试图在新的osgi容器中使用spring连接到遗留系统,但遇到以下异常: java.lang.Exception:无法转换值org.springframework.ejb.access。SimpleRemoteStatelessSessionProxyFactoryBean@310a250a输入com.company.cpm.process.CounterpartyHandler 这是我为通过spring将Java Weblogic 8.1上的Spring调用远程EJB,java,spring,jakarta-ee,ejb,weblogic,Java,Spring,Jakarta Ee,Ejb,Weblogic,我试图在新的osgi容器中使用spring连接到遗留系统,但遇到以下异常: java.lang.Exception:无法转换值org.springframework.ejb.access。SimpleRemoteStatelessSessionProxyFactoryBean@310a250a输入com.company.cpm.process.CounterpartyHandler 这是我为通过spring将counterpartyHandlerbean注入的类: import com.comp
counterpartyHandler
bean注入的类:
import com.company.cpm.domain.Counterparty;
import com.company.cpm.process.CounterpartyHandler;
public class CpmDataRetriever {
private CounterpartyHandler counterpartyHandler;
public void setCounterpartyHandler(CounterpartyHandler counterpartyHandler) {
this.counterpartyHandler = counterpartyHandler;
}
public Counterparty getCounterparty()
{
// TODO: implement function
return null;
}
}
下面是我的spring配置:
<!-- set up cpm data retriever bean -->
<bean id="counterpartyHandler"
class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean">
<property name="jndiName" value="com.company.cpm.process.CounterpartyHandlerHome" />
<property name="businessInterface" value="com.company.cpm.process.CounterpartyHandler"/>
<property name="jndiEnvironment">
<props>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url">t3://someserver.domain.com:41700</prop>
</props>
</property>
</bean>
<bean id="cpmDataRetriever" class="com.company.fuse.esb.cpm.CpmDataRetriever">
<property name="counterpartyHandler" ref="counterpartyHandler" />
</bean>
您确定没有混淆您的
jndiName
。这似乎是您的家庭界面
而不是您的jndiName。这个论坛帖子可能会有点帮助:@castleing谢谢,我来看看。同时,我还包括了weblogic-ejb-jar.xml文件,该文件将jndi名称
值显示为com.dteco.cpm.process.CounterpartyHandlerHome
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>CounterpartyHandler</ejb-name>
<home>com.company.cpm.process.CounterpartyHandlerHome</home>
<remote>com.company.cpm.process.CounterpartyHandler</remote>
<ejb-class>com.company.cpm.process.CounterpartyHandlerBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
<weblogic-ejb-jar>
<!-- CounterpartyHandler -->
<weblogic-enterprise-bean>
<ejb-name>CounterpartyHandler</ejb-name>
<stateless-session-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>0</initial-beans-in-free-pool>
</pool>
</stateless-session-descriptor>
<jndi-name>com.dteco.cpm.process.CounterpartyHandlerHome</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>