Tomcat vs Weblogic JNDIルックアップ
質問
のWeblogicサーバーを使用して設定されているJNDIデータソース名のように"appds".
のための開発(localhost)していますが、走らせることになりTomcatが宣言されたの <context> 部server.xml、Tomcatの花JNDIデータソースをonに"java:comp/env/jdbc/*"のJNDIます。
問題点: Weblogic、JNDIルックアップは"appds"をTomcatがうまいを提供できるようにならなければ正式に"java:comp/env/jdbc/appds".私たTomcatのバージョンが暗黙のが標準ですが、残念ながら私は変更することができませんWeblogicのconfig...と、いうことは我々の異なる二つの春には設定ファイル(まだ春2.5)を容易にする環境も様々です。
ああこれまでにないアドレスです。でんJNDI名を直接にTomcat?できるか名前を見るともうのか?Googleの検索やご提案をする。
解決
JndiLocatorSupport
プロパティを持って resourceRef
.設定する場合にこのtrue,"java:comp/env/"プレフィックスする前に追加されます。いをしたかのように正しく設定し差別化をこのパラメータが動からTomcat Weblogic.
他のヒント
利用方法は単一のJNDI名のwebアプリ
私は苦労しこの数カ月です。最良の解決策として、アプリケーションを移植可能ですのJNDI名の両方Tomcatには、Weblogic.
そのためには、変更 web.xml
や spring-beans.xml
ポイントを単一のjndi名をマッピングベンダーの特定のjndi名前です。
いされそれぞれのファイルです。
必要なもの:
- A
<resource-ref />
エントリweb.xml 用アプリモーバイルコンピューティングの名前 - ファイル
WEB-INF/weblogic.xml
地図おjndi名の資源管理するWebLogic - ファイル
META-INF/context.xml
地図おjndi名の資源管理するTomcat- このでなければならないと規定されて、Tomcatの設置やアプリです。
原則として希望していjndi名をアプリのように jdbc/MyDataSource
や jms/ConnFactory
なprefixingし java:comp/env/
.
また、データソースとの接続工場においても最高の容器で使用JNDI.この 間違いインスタンスを生成するデータベース接続プールにお申し込み.
春
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">
<jee:jndi-lookup jndi-name="jdbc/appds"
id="dataSource" />
</beans>
web.xml
<resource-ref>
<description>My data source</description>
<res-ref-name>jdbc/appds</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
weblogic.xml
<?xml version="1.0" encoding="UTF-8" ?>
<weblogic-web-app
xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://xmlns.oracle.com/weblogic/weblogic-web-app http://http://www.oracle.com/technology/weblogic/weblogic-web-app/1.1/weblogic-web-app.xsd">
<resource-description>
<jndi-name>appds</jndi-name>
<res-ref-name>jdbc/appds</res-ref-name>
</resource-description>
</weblogic-web-app>
META-INF/context.xml (Tomcat)
<Context>
<ResourceLink global="jdbc/appds" name="jdbc/appds" type="javax.sql.DataSource"/>
</Context>
私のトリックとTomcatには、WebLogicを用います。 こちらの ドキュメンテーションはどのくことになっています。
以下のconfig作Tomcatには、Weblogicました。
春:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<!-- This will prepend 'java:comp/env/' for Tomcat, but still fall back to the short name for Weblogic -->
<property name="resourceRef" value="true" />
<property name="jndiName" value="jdbc/AgriShare" />
</bean>
Weblogic管理コンソールをJDBC資源名 jdbc/AgriShare
.下の目標', てください対象のデータソースのサーバースアプリ!.この点コえっていま---
いevironment変?セットの開発機械のtomcatの名称ならびに生産のWeblogicの名前です。もできるので設定をデフォルト(WebLogic)の場合、変数は存在しない"
どのようご参照の資源です。
こうしたtomcat:
コンテクスト:
<Resource name="jms/ConnectionFactory" auth="Container" type="org.apache.activemq.ActiveMQConnectionFactory" description="
JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="tcp://localhost:61615" brokerName="StandaloneAc
tiveMQBroker"/>
春季:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<jee:jndi-lookup jndi-name="jms/ConnectionFactory" id="connectionFactory" resource-ref="true"
expected-type="javax.jms.ConnectionFactory" lookup-on-startup="false"/>
の数々の名前空間から:
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd
設定データソースのアプリケーション自体がないとのことでクレイジ:)私はもは必須の場合の申請はで展開する、グリッド川GigaSpacesます。
注意:いているとは言えない接続を設定するハードコードの中の戦争、それを供給することができるの展開時に行います。この簡易に管理クラウドインスタンスである場す。
の設定資源コンテナの場合のみ意味をな複数の用途展開がで利用することがで共有資源です。
再度、クラウド型の展開が応募はservletコンテナインスタンス.
自分のものに似た問題は、このようにのんびりとるか:
1) WEB-INF/classes/application.properties
を含む登録"を選択してください
ds.jndi=java:comp/env/jdbc/tcds
2)にWLS機械としての /etc/sysenv
ファイル:
ds.jndi=wlsds
3)私は設定の春のルックアップのJNDIヴィスの物件 ${ds.jndi}
, を用い PropertyPlaceholderConfigurer
豆と classpath:application.properties
や file:/etc/sysenv
しています。私もの ignoreResourceNotFound
へ true
その開発が必要になってい /etc/sysenv
自機です。
4)実行し、結合テスト用貨物+桟橋はとても正しくセットアップJNDIすることになります。いフォールバック BasicDataSource
設定にも使用 defaultObject
財産 JndiObjectFactoryBean
.