まず、これは StackOverflow に関する私の最初の質問であり、私はドイツの会社でインターンをしているので、英語が少し壊れており、知識が限られている可能性があります。
Jboss 6.1.0 EAP にリモートで接続しようとしています。EJB と EAR の IDE として Eclipse を使用していますが、Jboss フォーム cmd を実行しています。
私の ejb3 定義は次のようになります。
package de.jack;
import javax.ejb.Remote;
@Remote
public interface TestServiceRemote {
public void sayRemote();
}
package de.jack;
import javax.ejb.Stateless;
/**
* Session Bean implementation class TestService
*/
@Stateless
public class TestService implements TestServiceRemote {
public TestService() { }
public void sayRemote() {
System.out.println("\n\nHello");
}
}
.ear ファイルを生成した後、それらを JBoss AS にデプロイします。すべて正常に動作します。ブラウザーで localhost:9990 の下にそれらを表示し、デプロイされていることを確認できます。
次に、私が失敗した部分 - クライアント:
public static void main(String argv[]){
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "remote://localhost:4447");
props.put(Context.SECURITY_PRINCIPAL, "jack");
props.put(Context.SECURITY_CREDENTIALS, "katze");
props.put("jboss.naming.client.ejb.context", true);
// create a context passing these properties
InitialContext context;
Object test = null;
try {
context = new InitialContext(props);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
try {
test =
context.lookup("ConnectorBean/TestService!de.jack.TestServiceRemote");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
実行時に例外が発生します:
org.jboss.naming.remote.protocol.NamingIOException: Failed to lookup [Root exception is java.io.IOException: java.lang.ClassNotFoundException: de.jack.TestServiceRemote]
at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:49)
at org.jboss.naming.remote.protocol.v1.Protocol$1.execute(Protocol.java:104)
at org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1.lookup(RemoteNamingStoreV1.java:95)
at org.jboss.naming.remote.client.HaRemoteNamingStore$1.operation(HaRemoteNamingStore.java:245)
...
何が間違っていたのか正確にはわかりません.1つの理由は、マシンに管理者権限がないか、クライアント側のプロパティを混同したことです.
私の悪い英語で申し訳ありません。助けてくれてとても感謝しています!