簡體   English   中英

基於Spring注釋的SAP連接器

[英]Spring annotation based SAP connector

我正在嘗試從基於xml的配置轉移到Java批注

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

顯然,我無法將RemoteJco接口設置為我的SapConnector,但是如何使該xml-config工作呢?

@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();
}

確保您返回的值與用作服務接口的類相同。 而且您必須在調用RmiProxyFacotoryBean實例上的getObject之前調用afterPropertiesSet()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM