gpt4 book ai didi

java - 基于 Spring 注解的 SAP 连接器

转载 作者:行者123 更新时间:2023-12-01 11:45:03 25 4
gpt4 key购买 nike

我正在尝试从基于 xml 的配置转移到 java 注释

我需要您的帮助才能使其正常工作:

显然,我无法将 RemoteJco 接口(interface)设置为我的 SapConnector,但我该怎么做才能使此 xml 配置正常工作?

@Bean
public RmiProxyFactoryBean jcoPool(){
RmiProxyFactoryBean jcoPool = new RmiProxyFactoryBean();
jcoPool.setServiceUrl("rmi://localhost/CH");
jcoPool.setServiceInterface(RemoteJco.class);
jcoPool.setRefreshStubOnConnectFailure(true);
return jcoPool;
}

@Bean
public SapConnector SapConnector(){
SapConnector sapConnector = new SapConnector();
sapConnector.setJcoPool(jcoPool());
return sapConnector;
}

这在 XML-Config 中工作得很好:

<!-- JCO-Pool RMI Service -->
<bean id="jcoPool" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://localhost/CH"/>
<property name="serviceInterface" value="com.itensis.jco.common.RemoteJco"/>
<property name="refreshStubOnConnectFailure" value="true" />
</bean>

<bean id="SapConnector" class="com.itensis.core.SapConnector">
<property name="jcoPool">
<ref bean="jcoPool" />
</property>
</bean>

这是我的 SAP 连接器

@Service
public class SapConnector {
@Autowired private RemoteJco jcoPool;


public RemoteJco getJcoPool() {
return jcoPool;
}

public void setJcoPool(RemoteJco jcoPool) {
this.jcoPool = jcoPool;
}
}

最佳答案

您必须对 jcoPool bean 进行一些更改:

@Bean
public RemoteJco jcoPool(){
RmiProxyFactoryBean jcoPool = new RmiProxyFactoryBean();
jcoPool.setServiceUrl("rmi://localhost/CH");
jcoPool.setServiceInterface(RemoteJco.class);
jcoPool.setRefreshStubOnConnectFailure(true);
jcoPool.afterPropertiesSet();
return (RemoteJco) jcoPool.getObject();
}

确保您的返回值与用作服务接口(interface)的类相同。并且您必须在 RmiProxyFacotoryBean 实例上调用 getObject 之前调用 afterPropertiesSet()。

关于java - 基于 Spring 注解的 SAP 连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com