1

私のアプリケーションは Maven で動作し、次の 3 つのモジュールがあります。

  • 耳モジュール
  • Web モジュール
  • ejb モジュール

EJB バージョンは 3.0 です。

展開は、エラー メッセージなしで両方の方法で機能します。

Websphere の「Run server with resources on Server」の発行設定でアプリケーションを実行しようとすると、正常に動作します。

「ワークスペース内のリソースを使用してサーバーを実行する」で同じことを試み、ブラウザでアプリケーションを開こうとすると、次のエラー メッセージが表示されて失敗します。

NustService コンポーネント用に定義された次のリソース参照 [jdbc/nust] のリソース参照バインディングが見つかりませんでした。

私はJEE5の初心者ですが、ローカルのWebsphereがejb-jar.xmlを見つけることができないようです。

ejb モジュールの pom は次のとおりです。

<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>mycomp-nust-frontend-app</artifactId>
        <groupId>mycomp.app</groupId>
        <version>0.1.0-SNAPSHOT</version>
    </parent>
    <artifactId>mycomp-nust-frontend-svc</artifactId>
    <name>mycomp-nust-frontend-svc</name>
    <packaging>ejb</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>ejb-api</artifactId>
            <version>3.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>mycomp.service</groupId>
            <artifactId>mycomp-service-utils</artifactId>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <configuration>
                    <ejbVersion>3.0</ejbVersion>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <!-- Add classpath container for Websphere Application Server 7 to the 
                Eclipse project. -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <classpathContainers>
                        <classpathContainer>org.eclipse.jst.server.core.container/com.ibm.ws.ast.st.runtime.runtimeTarget.v70/was.base.v7</classpathContainer>
                        <classpathContainer>org.eclipse.jst.j2ee.internal.module.container</classpathContainer>
                    </classpathContainers>
                    <projectNameTemplate>${project.name}</projectNameTemplate>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

何か提案、さらに情報が必要ですか?

どうも

4

2 に答える 2

0

アプリケーションの定義済みリソースが見つからないという同様の状況に直面しました。解決策は、/WEB-INF/ibm-web-bnd.xmi を定義することでした。

<?xml version="1.0" encoding="UTF-8"?>
<com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:com.ibm.ejs.models.base.bindings.webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_1348167502046" virtualHostName="default_host">
    <webapp href="WEB-INF/web.xml#struts_blank"/>
    <resRefBindings jndiName="jms/MyConnectionFactory" xmi:id="cf">
        <bindingResourceRef href="WEB-INF/web.xml"/>
    </resRefBindings>
    <messageDestinationRefBindings jndiName="jms/TopicSpace/Group/Test" xmi:id="myTopic">
        <bindingMessageDestinationRef href="WEB-INF/web.xml"/>
    </messageDestinationRefBindings>  
</com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding>

チームの上級開発者は、これは XML ファイルであるべきだと言いましたが、うまくいきませんでした。これは、デプロイされたアプリケーションを IBM チュートリアルからエクスポートすることで発見しました。アプリケーションによっては、上記のリソース参照を変更する必要があります。

お役に立てれば

于 2012-10-16T19:41:21.150 に答える
0

問題は ejb-jar.xml にはありません。ejb-jar.xml は参照を宣言するだけです。「実際の」リソースへの実際のバインドは、アプリケーション サーバー固有のファイルによって行われます。WebSphere の場合、このファイルは ibm-ejb-jar-bnd.xml であり、ejb-jar.xml と同じディレクトリに配置する必要があります。たまたまそこにそのファイルがありますか?

于 2012-09-07T23:36:04.407 に答える