在我的 mavenized EAR 项目上“Run On Server”时,我总是遇到以下情况。
情况
如果我对 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>
...但是在服务器上运行生成的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
....EJB jar 名称错误:
<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 名称,并且该名称不用于“在服务器上运行”。
解决方法
我找到了一个解决方法来让它以某种方式运行。
如果你在“Run on Server”
之前说“Maven - Update Project Configuration ...”
,它就会工作一次。
但在下一次构建后将再次损坏。
使用的插件
- 适用于 Eclipse 11.1.1.8.0 的 Oracle WebLogic Server 工具
- m2e - Eclipse 1.0.100.20110804-1717 的 Maven 集成
问题
您知道如何在不使用我的解决方法的情况下纠正这种情况吗?
最佳答案
我使用weblogic-maven-plugin将我的耳朵部署到 weblogic。下面是 pom.xml 中的示例配置。这应该在你的耳朵项目 pom 中。确保正确添加依赖项,依赖项在 Maven 存储库中不可用。我必须手动安装它们,并且必须使用 weblogic jarbuilder 构建 wlfullclient.jar 正确设置配置后,创建一个目标为 weblogic:deploy 的 Maven 构建运行配置。这应该会将 Artifact 部署到您的 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>
关于eclipse - 使用 Weblogic (beadep) 时显示 "Run On Server"时未正确生成 application.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8489277/