基本的な列挙型を引数とし、同じ列挙型を返す単純なステートレスEJBがあります。名前にCONNECTを含むenum値を送信すると、Wildfly 10.xリモートEJBクライアントがハングする
@Stateless
@LocalBean
public class SerialBean implements RemoteSerial {
@Override
public Whatever enumTest(Whatever type) {
return type;
}
}
ここでは、簡単な列挙型です:
public enum Whatever {
TEST,
CONNECT_TEST
}
とシンプルなクライアント:
Properties jndiProps = new Properties();
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
jndiProps.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
jndiProps.put("jboss.naming.client.ejb.context", true);
try {
Context ctx = new InitialContext(jndiProps);
RemoteSerial serial = (RemoteSerial)ctx.lookup("rmi_test/rmi_ejb/SerialBean!test.RemoteSerial");
System.out.println(serial.enumTest(Whatever.TEST));
System.out.println(serial.enumTest(Whatever.CONNECT_TEST));
} catch (NamingException ex) {
ex.printStackTrace();
}
私はこのコードを実行すると、クライアントが正常に(TESTをWildFlyに接続し、最初の結果を返しますが、 )。ただし、クライアントは2番目のメソッド呼び出し(CONNECT_TEST)を実行するときにフリーズします。応答は受信されません。
CONNECT_TESTの名前をCONNECTがないものに変更すると、コードが機能します。 CONNECTをcONNECTに変更することもできます。
私はおそらくここで起こって何ができるかjdk1.8.0_102を使用して、Windows 7上で10.0と10.1の両方でこれを試してみましたが、121
ましたか?
私は、様々なプラットフォームでいくつかのテストを行ってきました。 * Linux to Win7デスクトップ(この問題が発生しているデスクトップ) * Win10デスクトップ(別のマシン)からLinux * Win10デスクトップからWin7デスクトップ パケットトレースは、Win7デスクトップが問題のあるデータをまったく送信していないことを示しています。 これはすべてJBoss 6.1でうまくいきます。デスクトップとWildFly 10のクライアントでは、明らかに奇妙なことが起こっています。 –