[解決済み] javax.naming.NameNotFoundException
質問
JBoss5コンテナでejbのサンプルを動かしています。私は例を使っています
ここから(その1)
.
この例では、JBossにBeanを配備し、Tomcatにアプリケーションを配備しました(JBossからBeanにアクセスするため)。tomcatサーバーの画面では、以下のようなエラーが発生します。
javax.naming.NameNotFoundException: greetJndi がバインドされていません。
( greetJndi は jboss.xml ファイル内の jndi-name です ) JBossでデプロイするための特定のディレクトリ構造はありますか?
ありがとうございます。
解決方法は?
<ブロッククオートjavax.naming.NameNotFoundException: greetJndi not bound というエラーが表示されます。
これは、jndiの名前に何もバインドされていないことを意味します。
greetJndi
であることから、デプロイメントに問題がある可能性が高いです。
信じられないほど低品質な
このチュートリアルのサーバーログを確認してください)。この件に関しては、また後ほど。
JBossでデプロイする際のディレクトリ構造は決まっているのでしょうか?
の内部構造は
ejb-jar
はこんな感じになっているはずです。
貧弱な命名規則とデフォルトのパッケージ
のように)。
. ├── greetBean.java ├────────────────────────────┘Home.java ├── greetRemote.java └──META-INF ├── ejb-jar.xml └──jboss.xml
しかし、すでに述べたように、このチュートリアルは間違いだらけです。
-
という余分な文字があります。
<enterprise-beans>]
の中にあります。ejb-jar.xml
(!) -
の後にスペースがありません。
PUBLIC
の中でejb-jar.xml
とjboss.xml
(!!) -
その
jboss.xml
が正しくありません。session
要素ではなくentity
(!!!)
以下は、quot;fixed" のバージョンです。
ejb-jar.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>greetBean</ejb-name>
<home>greetHome</home>
<remote>greetRemote</remote>
<ejb-class>greetBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
そして、そのうちの
jboss.xml
:
<?xml version="1.0"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.2//EN" "http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd">
<jboss>
<enterprise-beans>
<session>
<ejb-name>greetBean</ejb-name>
<jndi-name>greetJndi</jndi-name>
</session>
</enterprise-beans>
</jboss>
これらの変更を行い、ejb-jarを再パッケージ化した後、正常にデプロイすることができました。
21:48:06,512 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@5060868{vfszip:/home/pascal/opt/jboss-5.1.0.GA/server/default/deploy/greet.jar/} (デプロイメントに遭遇した場合)。 21:48:06,534 INFO [EjbDeployer] ビーンをインストールする: ejb/#greetBean,uid19981448 21:48:06,534 INFO [EjbDeployer] 依存関係を持つ。 21:48:06,534 INFO [EjbDeployer] と供給品です。 21:48:06,534 INFO [EjbDeployer] jndi:greetJndi。 21:48:06,624 INFO [EjbModule] greetBean をデプロイしています。 21:48:06,661 WARN [EjbModule] EJBはセキュリティをバイパスするように構成されました。これが意図的なものであるかどうかを確認してください。Bean=greetBean Deployment=vfszip:/home/pascal/opt/jboss-5.1.0.GA/server/default/deploy/greet.jar/ (デフォルトでは、GreetBeanをデプロイします。 21:48:06,805 INFO [ProxyFactory] EJBホーム 'greetBean' をjndi 'greetJndi' にバウンドさせる。
そのチュートリアルはかなりの改善が必要です。roseindia.netから離れることをお勧めします。
関連
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] なぜJPAには@Transientアノテーションがあるのですか?
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] publicId と systemId の間に空白が必要です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] java.util.MissingFormatArgumentException: 形式指定子 '%s' がありません。
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み] java.io.IOException。DER長の短い読み取り