@Stateless(mappedName = "AipEJBAdapter")
@TransactionManagement(TransactionManagementType.BEAN)
@Remote(value={IXmlMessageReceiver.class,IBaseESBMessageReceiver.class,IBaseMessageInternalReceiver.class})
public class AipEJBAdapter implements IBaseMessageInternalReceiver{ @Resource
SessionContext sessionContext;

@Override
@TransactionAttribute(TransactionAttributeType.NEVER)
public Object receiveBean(Object message)
throws Exception {
System.out.println("------------------receiveBean------------------------");
return "receiveBean";
} @Override
@TransactionAttribute(TransactionAttributeType.NEVER)
public String receiveXML(String xml) throws Exception {
System.out.println("------------------receiveXML------------------------");
return "receiveXML";
} @TransactionAttribute(TransactionAttributeType.REQUIRED)
@Override
public Object receiveInternal(Object req) throws Exception {
System.out.println("------------------receiveInternal------------------------");
return "receiveInternal";
}
}--------------------------------------------------------------------------------------------------------ejb-jar.xml<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns = "http://java.sun.com/xml/ns/javaee" 
         version = "3.0" 
         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
  <enterprise-beans>  
<session>
<ejb-name>IXmlMessageReceiver</ejb-name>
<remote>com.css.sword.esb.adapter.client.IXmlMessageReceiver</remote>
<ejb-class>com.css.sword.esb.adapter.server.ejb.AipEJBAdapter</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
   </session>
   <session>
<ejb-name>IBaseESBMessageReceiver</ejb-name>
<remote>com.css.sword.esb.adapter.client.IBaseESBMessageReceiver</remote>
<ejb-class>com.css.sword.esb.adapter.server.ejb.AipEJBAdapter</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
   </session>
   <session>
<ejb-name>IBaseMessageInternalReceiver</ejb-name>
<remote>com.css.sword.esb.adapter.server.IBaseMessageInternalReceiver</remote>
<ejb-class>com.css.sword.esb.adapter.server.ejb.AipEJBAdapter</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
   </session>
 </enterprise-beans>
</ejb-jar>-----------------------------------------------------------------------------------------------------
weblogic-ejb-jar<?xml version="1.0" encoding="UTF-8"?>
<weblogic-ejb-jar xmlns="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-ejb-jar http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd">
 <weblogic-enterprise-bean>
  <ejb-name>IXmlMessageReceiver</ejb-name>
  <jndi-name>IXmlMessageReceiver#com.css.sword.esb.adapter.client.IXmlMessageReceiver</jndi-name>
 </weblogic-enterprise-bean>
 <weblogic-enterprise-bean>
  <ejb-name>IBaseESBMessageReceiver</ejb-name>
  <jndi-name>IBaseESBMessageReceiver#com.css.sword.esb.adapter.client.IBaseESBMessageReceiver</jndi-name>
 </weblogic-enterprise-bean>
  <weblogic-enterprise-bean>
  <ejb-name>IBaseMessageInternalReceiver</ejb-name>
  <jndi-name>IBaseMessageInternalReceiver#com.css.sword.esb.adapter.server.IBaseMessageInternalReceiver</jndi-name>
 </weblogic-enterprise-bean>
</weblogic-ejb-jar>

解决方案 »

  1.   

    In EJB IXmlMessageReceiver, both the remote home and remote component interface must be specified. Currently, only one of them is specified.
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:469)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
    Truncated. see log file for complete stacktrace
    Caused By: In EJB IXmlMessageReceiver, both the remote home and remote component interface must be specified. Currently, only one of them is specified.
    at weblogic.ejb.container.deployer.ClientDrivenBeanInfoImpl.checkClientViews(ClientDrivenBeanInfoImpl.java:1508)
    at weblogic.ejb.container.deployer.ClientDrivenBeanInfoImpl.<init>(ClientDrivenBeanInfoImpl.java:171)
    at weblogic.ejb.container.deployer.SessionBeanInfoImpl.<init>(SessionBeanInfoImpl.java:93)
    at weblogic.ejb.container.deployer.Ejb3SessionBeanInfoImpl.<init>(Ejb3SessionBeanInfoImpl.java:86)
    at weblogic.ejb.container.deployer.BeanInfoImpl.createBeanInfoImpl(BeanInfoImpl.java:686)
    Truncated. see log file for complete stacktrace