2017-03-26 29 views
-1

私のEJBは、次の通りであると(Glassfishのコンソールから取得した)JNDI名でGlassfishの上に展開 - のjava:グローバル/ FinalEJBProject-EJB/AdminOperationsBean com.humber.its.n01131590.AdminOperationsBeanRemote春コントローラでEJBにアクセスすることができません

@Stateless(mappedName = "ejb/AdminOperationsBean") 
public class AdminOperationsBean implements AdminOperationsBeanRemote { } 

私のSpringプロジェクトでは、Beanにアクセスしようとしています。次のようにapplicationContext.xmlをがある - 春コントローラで<jee:remote-slsb id="adminRemote" jndi-name="java:global/FinalEJBProject- ejb/AdminOperationsBean!com.humber.its.n01131590.AdminOperationsBeanRemote" business-interface="com.humber.its.n01131590.AdminOperationsBeanRemote" cache-home="false" lookup-home-on-startup="false" refresh-home-on-connect-failure="true" />

-

@Controller 
public class AdminController { 

private AdminOperationsBeanRemote adminRemote; 

public void setAdminOperationsBeanRemote(AdminOperationsBeanRemote 
adminRemote) { 
this.adminRemote = adminRemote; 
} 

public AdminOperationsBeanRemote getAdminOperationsBeanRemote() { 
return adminRemote; 
} 

私は常に失敗し、ルックアップを取得しています -

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.remoting.RemoteLookupFailureException: Failed to locate remote EJB [java:global/FinalEJBProject-ejb/AdminOperationsBean!com.humber.its.n01131590.AdminOperationsBeanRemote]; nested exception is javax.naming.NamingException: Lookup failed for 'java:global/FinalEJBProject-ejb/AdminOperationsBean!com.humber.its.n01131590.AdminOperationsBeanRemote' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: FinalEJBProject-ejb] 

誰かが私を助けてください、私はこれにされています過去3日間

+0

にmappedName属性は、製品固有の名前です。代わりに、name属性を使用します。アプリケーション内部のEJB Beanにアクセスする場合、jndiルックアップは次のようになります。java:comp/env/ejb/beanname [/ interfacename] –

答えて

0

最後に、あなたのApplicationContext.xmlの中で、接尾辞修飾子名なしでJNDI名を使用しました。

java:global/FinalEJBProject-ejb/AdminOperationsBean!com.humber.its.n01131590.AdminOperationsBeanRemote 

java:global/FinalEJBProject-ejb/AdminOperationsBean 

次のようにapplicationContext.xmlを第二のJNDI名を使用してください -

<jee:remote-slsb id="adminRemote" jndi-name="java:global/FinalEJBProject-ejb/AdminOperationsBean" business- interface="com.humber.its.n01131590.AdminOperationsBeanRemote" cache-home="false" lookup-home-on-startup="false" refresh-home-on-connect-failure="true" />

関連する問題