2011-08-17 1 views
1

等しくない私はサーブレットにSLSBを注入しようとしているが、次のエラーを得ている:ここでEJB3インジェクションは5.1エラーはJBoss ASに失敗しました:値と目標のクラスローダは

ERROR [org.jboss.injection.lang.reflect.FieldBeanProperty] (HDScanner) failed to set value Proxy to jboss.j2ee:ear=contact.ear,jar=contact-ejb.jar,name=ContactServiceBean,service=EJB3 implementing [interface com.test.contactservice.ContactService] on field private com.test.contactservice.ContactServiceBean com.test.contactmanager.controller.ContactController.cBean; Reason: ClassLoaders of value and target are not equal

は注釈ですEJB上:

@Stateless(name="ContactServiceBean") 
@Local 
public class ContactServiceBean implements ContactService { 

サーブレットは、次の注釈があります

@EJB(mappedName="contact/ContactServiceBean/local") 
private ContactServiceBean cBean; 

私のweb.xmlが2.5スキーマを使用しています。

<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
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/web-app_2_5.xsd"> 

は、誰かが見てみていただけますか?どんな提案も大歓迎です。


@AntonioP:EJBを戦争にパッケージ化することはEJB3.1でしか機能しないと思いました。私はそれがJBoss 5.1ではサポートされていないと信じています。

私はあなたが示唆したようにmappedNameの名前を変更しようとしましたが、NameNotFoundExceptionがあります。 EJBがグローバルJNDIの次のエントリにバインドされていることを忘れてしまいました。

[org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase](HDScanner)グローバルJNDIで次のエントリをバインドする:

contact.ear 
| 
___META-INF 
     | 
     ___application.xml 
| 
___contact.war 
| 
___contact-ejb.jar 

ありがとう:

contact/ContactServiceBean/local - EJB3.x Default Local Business Interface 
    contact/ContactServiceBean/local-com.test.contactservice.ContactService - EJB3.x Local Business Interface 

私の耳には、次のディレクトリ構造を有しています。

+0

FYI - 私はこの[ポスト]リンク(http://stackoverflow.com/questions/6183670/ejb-3-1-dependency-injection-failed)と他の人があなたの問題を解決するのに役立つ他の投稿を見ることができます。 – CoolBeans

答えて

0

サーブレットとSSLBは同じjarまたはwarにありますか?彼らはする必要があります。また、そのインタフェースではなく、実装にEJBを注入することにより、

@EJB(mappedName="com/test/contact/ContactServiceBean/local") 

か、単にContactServiceBean /ローカル

チェックhttp://community.jboss.org/message/8196#8196

0

はそれを修正この記事で

@EJB(mappedName="contact/ContactServiceBean/local") 

てみてくださいを確認してください。

以下

参照リンク:

EJB 3.1 Dependency Injection Failed

関連する問題