1

我嘗試僅使用部署描述符在EJB 3.0中注入依賴關係。當我將應用程序部署到Glassfish(v3.1)時,出現以下異常:部署描述符中的ejb引用(無註釋)

java.lang.RuntimeException: Warning : Unable to determine local business vs. remote business designation for EJB 3.0 ref Local ejb-ref name=ejb/Test2,Local 3.x interface =pl.Test2Local,ejb-link=Test2,lookup=,mappedName=,jndi-name=,refType=Session 

我不知道我做錯了什麼。有人可以幫我嗎?

在EJB-jar.xml描述符是:

<session> 
    <ejb-name>Test2</ejb-name> 
    <remote>pl.Test2Remote</remote> 
    <local>pl.Test2Local</local> 
    <ejb-class>pl.Test2</ejb-class> 
    <session-type>Stateless</session-type> 
</session> 

<session> 
    <ejb-name>Test</ejb-name> 
    <remote>pl.TestRemote</remote> 
    <local>pl.TestLocal</local> 
    <ejb-class>pl.Test</ejb-class> 
    <session-type>Stateless</session-type> 
    <ejb-local-ref> 
     <ejb-ref-name>ejb/Test2</ejb-ref-name> 
     <local>pl.Test2Local</local> 
     <ejb-link>Test2</ejb-link> 
     <injection-target> 
      <injection-target-class>pl.Test</injection-target-class> 
      <injection-target-name>test2</injection-target-name> 
     </injection-target> 
    </ejb-local-ref> 
</session> 

類pl.Test:

public class Test implements TestRemote, TestLocal { 
private Test2Local test2; 
public Test() { 
} 

}

回答

1

的解決方案是:

<enterprise-beans> 
    <session id="Test"> 
     <ejb-name>Test</ejb-name> 
     <ejb-class>pl.Test</ejb-class> 
     <session-type>Stateless</session-type> 
     <transaction-type>Container</transaction-type> 
     <ejb-local-ref> 
      <ejb-ref-name>pl.Test/test2</ejb-ref-name> 
      <local>pl.Test2Local</local> 
      <injection-target> 
       <injection-target-class>pl.Test</injection-target-class> 
       <injection-target-name>test2</injection-target-name> 
      </injection-target> 
     </ejb-local-ref> 
     <depends-on/> 
    </session> 
    <session id="Test2"> 
     <ejb-name>Test2</ejb-name> 
     <mapped-name></mapped-name> 
     <ejb-class>pl.Test2</ejb-class> 
     <session-type>Stateless</session-type> 
     <transaction-type>Container</transaction-type> 
     <depends-on/> 
    </session> 
</enterprise-beans> 

0

需要更換標籤下面的XML:

遠程=企業遠程 本地=業務本地

相關問題