J'ai créé un projet simple test EJB3, le code est simple:Aide avec EJB3, Weblogic et au printemps
@Stateless
@Remote({ ISumaSimple.class })
public class SumaSimpleBean implements ISumaSimple {
/**
* Default constructor.
*/
public SumaSimpleBean() {
// TODO Auto-generated constructor stub
}
@Override
public int sumar(int a, int b) {
// TODO Auto-generated method stub
return a + b;
}
}
public interface ISumaSimple {
public int sumar(int a, int b);
}
Ok, mon client est un aplication de ressort autonome qui configuration est:
<bean id="sumaSimpleServicio"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiEnvironment">
<props>
<prop key="java.naming.factory.initial">
org.apache.openejb.client.RemoteInitialContextFactory
</prop>
<prop key="java.naming.provider.url">
ejbd://localhost:4201
</prop>
</props>
</property>
<property name="jndiName" value="SumaSimpleBeanRemote" />
</bean>
<bean id="clienteService" class="qtx.cliente.simple.ClienteService">
<property name="sumaSimpleServicio" ref="sumaSimpleServicio"></property>
</bean>
Tout a fonctionné sans problème, mais j'ai essayé de déployer à l'aide weblogic 10.3, juste changer ces valeurs:
weblogic.jndi.WLInitialContextFactory
t3: // localhost: 7010
dans l'arbre weblogic JNDI mon ejb est sous: SimpleEJB3SimpleEJB_jarSumaSimple3_ISumaSimple
Bien sûr, j'ajouté wlclient.jar à mon classpath client de printemps.
Le déploiement s'est parfaitement déroulé, mais je pense qu'il me manque quelque chose dans le cas de weblogic, mais pas du tout. Mon client de printemps jette cette exception:
Caused by: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [qtx.ejb.simple._SumaSimple3_gwze0z_ISumaSimpleIntf_Stub] to required type [qtx.servicio.simple.ISumaSimple] for property 'sumaSimpleServicio'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [qtx.ejb.simple._SumaSimple3_gwze0z_ISumaSimpleIntf_Stub] to required type [qtx.servicio.simple.ISumaSimple] for property 'sumaSimpleServicio': no matching editors or conversion strategy found
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:391)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1288)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1249)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
... 14 more
Caused by: java.lang.IllegalArgumentException: Cannot convert value of type [qtx.ejb.simple._SumaSimple3_gwze0z_ISumaSimpleIntf_Stub] to required type [qtx.servicio.simple.ISumaSimple] for property 'sumaSimpleServicio': no matching editors or conversion strategy found
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:219)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:386)
... 18 more
Toute aide serait appréciée.