我正在寻找将我在Eclipse中编写的Web服务部署到EAR文件。我可以将它作为WAR导出,并将它部署在Tomcat上的所有内容都很好,但最终的产品不会在Tomcat上,也不会成为WAR文件。我需要使用Websphere作为服务器,我可以访问它并可以部署有效的EAR文件...如果我要部署EAR文件。如何在Eclipse中从动态Web项目构建EAR文件?
这么久以来,我如何从Eclipse的Dynamic Web Project导出EAR文件?
我正在寻找将我在Eclipse中编写的Web服务部署到EAR文件。我可以将它作为WAR导出,并将它部署在Tomcat上的所有内容都很好,但最终的产品不会在Tomcat上,也不会成为WAR文件。我需要使用Websphere作为服务器,我可以访问它并可以部署有效的EAR文件...如果我要部署EAR文件。如何在Eclipse中从动态Web项目构建EAR文件?
这么久以来,我如何从Eclipse的Dynamic Web Project导出EAR文件?
您需要在Eclipse中创建企业应用程序项目(基本上是一个EAR),将Dynamic Web Project添加到EAR项目,然后导出整个项目。
为此,我使用Ant构建脚本(您可以在Eclipse中创建一个新的Ant文件,将其存储在您的动态Web项目根目录中,然后右键单击>在您想从eclipse运行时运行它。 。像下面基本上你的战争复制到一个目录,$ {} earDir下面脚本,并构建一个EAR(EAR的仅仅是一个类型的JAR):
<target name="buildEar" depends="init">
<copy tofile="${earDir}/" file="yourWarFile"/>
<copy tofile="${earDir}/META-INF/application.xml" file="localDirectory/application.xml"/>
<copy todir="${earDir}/META-INF">
<fileset dir="localDirectory" includes="was.policy" />
</copy>
<jar jarfile="localDir/something.ear" basedir="${earDir}">
<!-- Define the properties for the Manifest file. -->
<manifest>
<attribute name="Implementation-Vendor" value="Company name"/>
<attribute name="Implementation-Title" value="Application Title"/>
<attribute name="Implementation-Version" value="version and build number"/>
</manifest>
</jar>
</target>
你的was.policy文件将是这样的东西(不是很好给予所有权限,但您可以在稍后启用并运行后更改它):
//
// Template policy file for enterprise application.
// Extra permissions can be added if required by the enterprise application.
//
// NOTE: Syntax errors in the policy files will cause the enterprise application FAIL to start.
// Extreme care should be taken when editing these policy files. It is advised to use
// the policytool provided by the JDK for editing the policy files
// (WAS_HOME/java/jre/bin/policytool).
//
grant codeBase "file:${jars}" {
};
grant codeBase "file:${connectorComponent}" {
};
grant codeBase "file:${webComponent}" {
};
grant codeBase "file:${ejbComponent}" {
};
grant codeBase "file:${application}" {
permission java.security.AllPermission;
};
你application.xml文件将是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_ID" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<display-name>yourAppName</display-name>
<module id="WebModule_1240219352859">
<web>
<web-uri>yourWarFile.war</web-uri>
<context-root>urlToApplication</context-root>
</web>
</module>
</application>
的ID应该是确定他们需要的是每穗我认为唯一的(或者是服务器不能记住)。
我希望这会有所帮助。
嘿@gurnard,我有一个类似的问题,除了我需要在'weblogic'上部署'.ear'。在Oracle管理员控制台上安装后,我在访问项目时遇到了一些问题。我似乎无法弄清楚如何访问我的项目所具有的index.jsp页面。任何想法可能会出错? – TheLuminor 2015-12-04 12:28:20
这里是我发布的问题,请看一看,它会帮助你知道究竟在哪里被卡住。 @gurnard http://stackoverflow.com/questions/34086464/how-to-correctly-deploy-a-ear-file-on-oracle-weblogic-administrator-console – TheLuminor 2015-12-04 12:29:11
你好。抱歉,我从未使用过weblogic – Gurnard 2015-12-07 08:16:54
@ Matt-出于某种原因,我这样做后,websphere给我一个错误:'EAR文件可能已损坏和/或不完整。确保该应用程序处于兼容的Java 2平台企业版(J2EE)级别,用于WebSphere Application Server.'是否有我缺少的配置设置,或许? – ZKSteffel 2011-06-07 16:12:48
我错过了很多配置设置,如我的一些其他帖子所示。因此,一旦我的语言版本正确,我就可以创建与我的项目相关的EAP,并确保包含application.xml,然后将其导出为EAR文件。 – ZKSteffel 2011-06-10 17:50:53
对不起,我没有更有用的解决错误,但我很高兴你得到它的工作。 – 2011-06-10 18:11:38