等しくない私はサーブレットに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
私の耳には、次のディレクトリ構造を有しています。
FYI - 私はこの[ポスト]リンク(http://stackoverflow.com/questions/6183670/ejb-3-1-dependency-injection-failed)と他の人があなたの問題を解決するのに役立つ他の投稿を見ることができます。 – CoolBeans