1

我的应用程序使用 Maven 并具有三个模块:

  • 耳机模块
  • 网络模块
  • ejb模块

EJB 版本是 3.0。

部署以两种方式工作,没有错误消息。

当我尝试使用 Websphere 的“使用服务器上的资源运行服务器”的发布设置运行应用程序时,它工作正常。

当我尝试对“使用工作区中的资源运行服务器”执行相同操作并在我的浏览器中打开应用程序时,它会失败并显示以下错误消息:

找不到为 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

问题不在于您的 ejb-jar.xml。请记住,ejb-jar.xml 只是声明了引用;与“真实”资源的实际绑定是由应用程序服务器特定的文件完成的。在 WebSphere 的情况下,该文件是 ibm-ejb-jar-bnd.xml,它应该与 ejb-jar.xml 位于同一目录中。你碰巧有那个文件吗?

于 2012-09-07T23:36:04.407 回答
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 回答