EAP 6 は、データソースオブジェクトでリモートの JNDI 検索をサポートしますか?
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
Issue
-
EAP 6 は、データソースオブジェクトでリモートの JNDI 検索をサポートしますか?
-
データソースでリモートの JNDI 検索を行うことはできますか?
-
スタンドアロンクライアントを使用して DataSource にリモートでアクセスすると、以下の例外が発生します。
java MySql_Client remote://localhost:4447
Oct 10, 2012 10:24:02 PM org.xnio.Xnio <clinit>
INFO:XNIO Version 3.0.4.GA-redhat-1
Oct 10, 2012 10:24:02 PM org.xnio.nio.NioXnio <clinit>
INFO:XNIO NIO Implementation Version 3.0.4.GA-redhat-1
Oct 10, 2012 10:24:02 PM org.jboss.remoting3.EndpointImpl <clinit>
INFO:JBoss Remoting version 3.2.8.GA-redhat-1
Got InitialContext ic: javax.naming.InitialContext@651dba45
About to look up jndi name MySqlDS
Oct 10, 2012 10:24:03 PM org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1$MessageReceiver handleMessage
ERROR: org.jboss.remoting3.MessageCancelledException
Exception in thread "main" org.jboss.naming.remote.protocol.NamingIOException:Failed to lookup [Root exception is java.io.NotSerializableException: org.jboss.jca.core.connectionmanager.pool.strategy.OnePool]
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:79)
at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:79)
at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:83)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at MySql_Client.main(MySql_Client.java:37)
Caused by: java.io.NotSerializableException: org.jboss.jca.core.connectionmanager.pool.strategy.OnePool
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:891)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:998)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885)
at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:62)
at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119)
at org.jboss.naming.remote.protocol.v1.Protocol$1$2.write(Protocol.java:138)
at org.jboss.naming.remote.protocol.v1.WriteUtil.write(WriteUtil.java:61)
at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:128)
at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: an exception which occurred:
in field pool
in field cm
in object org.jboss.jca.adapters.jdbc.WrapperDataSource@2bb57fd1
Resolution
- 機能上は、EAP 6 のデータソースでリモート JNDI 検索を実行することはできません。EAP 6 より前のバージョンでは可能でしたが、推奨はされていませんでした (こちらのナレッジを参照)。この機能は EAP 6 から削除されています。データソースにアクセスする際の中継手段として EJB を使用し、データの処理方法について適切な制限を定義することが推奨されます。
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments