application.xml не генерируется правильно при произнесении «Запустить на сервере» с использованием Weblogic (beadep) - PullRequest
3 голосов
/ 13 декабря 2011

Я всегда сталкиваюсь со следующей ситуацией, когда «Запуск на сервере» в моем mavenized EAR проекте.

Положение

Если я предприму следующие шаги в своем проекте EAR:

  • mvn clean install
  • Запуск на сервере

... приведет к:

application.xml , созданный Maven , будет правильным:

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

(в "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>

... но application.xml , сгенерированный Запуск на сервере , неверен:

Плагин для сервера Oracle WebLogic сгенерирует 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

.... с неправильным именем фляги EJB :

<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 для Eclipse 11.1.1.8.0
  • м2e - интеграция Maven для Eclipse 1.0.100.20110804-1717

Вопрос

У вас есть идеи, как исправить эту ситуацию, не используя мой обходной путь?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2016

Это сообщение:

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

Военное имя в теге web-uri application.xml должно соответствовать атрибуту archiveName из org.eclipse.wst.common.component:

Если они не совпадают, Eclipse запутывается и не знает, где искать файл войны.Обратите внимание, что это применимо только при использовании Eclipse для создания вашего проекта.Однако вы можете изменить любой файл, чтобы устранить проблему, так как Eclipse создает org.eclipse.wst.common.component, он может измениться без вашего ведома, поэтому я предлагаю изменить application.xml.

2 голосов
/ 20 января 2012

Я использую weblogic-maven-plugin , чтобы развернуть свое ухо в weblogic. Ниже приведен пример конфигурации из пом. это должно быть на вашем ухе проект пом. Убедитесь, что зависимости добавлены правильно, зависимости недоступны из репозитория maven. Я должен был установить их вручную, а также wlfullclient.jar должен был быть собран с использованием weblogic jarbuilder Как только вы настроите конфигурацию правильно, создайте конфигурацию запуска сборки maven с целью weblogic: deploy. Это должно привести к развертыванию артефакта на вашем сервере 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>
...