2012-09-05 46 views
1

我的應用程序使用Maven和有三個模塊:Eclipse中使用WebSphere 7.0.0.17:EJB項目不與工作區中的資源工作,但服務器上的資源工作

  • 耳模塊
  • 網-module
  • EJB模塊

EJB版本是3.0。

部署以兩種方式工作,沒有錯誤消息。

當我嘗試運行帶有發佈設置的Websphere「在服務器上使用資源運行服務器」的應用程序時,它工作正常。

當我嘗試做相同的「與工作空間內的資源運行服務器」,然後打開瀏覽器中的應用程序失敗,出現此錯誤消息:

資源引用綁定無法爲找到跟蹤爲NustService組件定義的資源引用[jdbc/nust]。

我是JEE5中的新成員,但在我看來,本地websphere不能找到ejb-jar.xml。

這裏的POM,EJB MODUL:

<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> 

任何建議,詳細信息需要?

thx

回答

0

問題不在於您的ejb-jar.xml。請記住,ejb-jar.xml只是聲明引用;實際綁定到「真實」資源是由應用程序服務器特定的文件完成的。在WebSphere的情況下,這個文件是ibm-ejb-jar-bnd.xml,它應該位於與ejb-jar.xml相同的目錄中。你碰巧在那裏有那個文件嗎?

+0

是,該文件是存在的 –

+0

OK,這樣就意味着,當RAD被設置爲使用「在工作區中潤資源」,這個文件不能被發現。 使用WebSphere的「classloader viewer」在運行時查看與應用程序類路徑關聯的目錄列表。 – Isaac

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教程中導出已部署的應用程序來發現此問題。根據您的應用程序,您將不得不更改上述資源參考。

希望這有助於

相關問題