3

Mavenized EARプロジェクトで「サーバー上で実行」を実行しているときに、常に次の状況が発生します。

状況

EARプロジェクトで次の手順を実行した場合:

  • mvnクリーンインストール
  • サーバーで実行

...につながる:

Mavenによって生成されたapplication.xmlは正しくなります。

<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">
  <display-name>com.company.fbps.api.impl.ear</display-name>
  <module>
    <ejb>com.company.fbps.api.impl.ejb-0.0.1-SNAPSHOT.jar</ejb>
  </module>
</application>

EJBプロジェクト「com.company.fbps.api.impl.ejb」はEARプロジェクトのMaven依存関係です。

(「com.company.fbps.api.impl.ejb」pom.xml内)

<dependency>
    <groupId>com.company.fbps.api.impl.ejb</groupId>
    <artifactId>com.company.fbps.api.impl.ejb</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <type>ejb</type>
</dependency>

...しかし、Run on Serverによって生成されたapplication.xmlは正しくありません:

Oracle WebLogic Serverプラグインは、次の目的でapplication.xmlを生成します。

...\.metadata\.plugins\org.eclipse.core.resources\.projects\com.company.fbps.api.impl.ear\beadep\fbp_local_test\com.company.fbps.api.impl.ear\split_src

....間違ったEJBjar名を持っている:

<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">
  <display-name>com.company.fbps.api.impl.ear</display-name>
  <module>
    <ejb>com.company.fbps.api.impl.ejb.jar</ejb>
  </module>
</application>

したがって、このプロセスでは、一部の統合は、Mavenが異なるejb.jar名を生成し、これが「サーバーで実行」に使用されないという事実を認識していません。

回避策

どういうわけかそれを実行させるための回避策を見つけました。あなたがそれが一度働く"Maven - Update Project Configuration ..."前に言うならば。"Run on Server"しかし、次のビルド後に再び破損します。

使用済みプラグイン

  • Oracle WebLogic Server Tools for Eclipse 11.1.1.8.0
  • m2e-Eclipse用のMaven統合1.0.100.20110804-1717

質問

私の回避策を使用せずにこの状況を修正する方法を知っていますか?

4

2 に答える 2

2

weblogic-maven-pluginを使用して、自分の耳を weblogic にデプロイします。以下は、pom のサンプル構成です。これはあなたの耳のプロジェクトポンにあるはずです。依存関係が正しく追加されていることを確認してください。依存関係は Maven リポジトリからは利用できません。それらを手動でインストールする必要があり、また、weblogic jarbuilderを使用して wlfullclient.jar をビルドする必要がありました。構成を正しく設定したら、weblogic:deploy を目標とする Maven ビルド実行構成を作成します。これにより、アーティファクトが Weblogic サーバーにデプロイされます。

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>weblogic-maven-plugin</artifactId>
<version>2.9.1</version>
<configuration>
  <adminServerHostName>localhost</adminServerHostName>
      <adminServerPort>7001</adminServerPort>
  <userId>${username}</userId>
  <password>${password}</password>
  <upload>false</upload>
  <remote>false</remote>
  <verbose>false</verbose>
  <debug>true</debug>
  <targetNames>${server}</targetNames>
  <exploded>false</exploded>
  </configuration>
<dependencies>
  <dependency>
   <groupId>weblogic</groupId>
   <artifactId>weblogic</artifactId>
   <version>${weblogic.version}</version>
     </dependency>
 <dependency>
  <groupId>weblogic</groupId>
  <artifactId>wlfullclient</artifactId>
  <version>${weblogic.version}</version>
</dependency>
<dependency>
 <groupId>weblogic</groupId>
 <artifactId>webservices</artifactId>
 <version>${weblogic.version}</version>
    </dependency>
<dependency>
 <groupId>org.apache.xmlbeans</groupId>
 <artifactId>xmlbeans</artifactId>
 <version>2.3.0</version>
   </dependency>
  </dependencies>
 </plugin>
于 2012-01-20T17:12:50.697 に答える
2

このメッセージ:

Caused By: java.io.FileNotFoundException: 
C:\<ECLIPSE WORKSPACE PATH>\.metadata\.plugins\org.eclipse.core.resources\.projects\<EAR PROJECT NAME>\beadep\<SERVER DOMAIN NAME>\<EAR PROJECT NAME>\<WAR NAME>

META-INF/application.xml と .settings/org.eclipse.wst.common.component の間の競合が原因です。山かっこを使用してパス内の変数を表しています。これらの部分は人によって異なるためです。

<EAR PROJECT NAME>org.eclipse.wst.common.component から決定されます。

<wb-module deploy-name="<EAR PROJECT NAME>">

<WAR NAME>org.eclipse.wst.common.component からも決定されます。

<dependent-module archiveName="<WAR NAME>"......

application.xml の web-uri タグの war 名は、org.eclipse.wst.common.component の archiveName 属性と一致する必要があります。

それらが同じでない場合、Eclipse は混乱し、war ファイルを探す場所がわかりません。これは、Eclipse を使用してプロジェクトをビルドする場合にのみ適用されることに注意してください。いずれかのファイルを変更して問題を解決できますが、Eclipse は org.eclipse.wst.common.component を作成するため、知らないうちに変更される可能性があるため、application.xml を変更することをお勧めします。

于 2016-04-26T20:04:59.443 に答える