2010-04-28 53 views
0

我真的很新,所以我希望不会犯任何可怕的错误。如果我有,我很抱歉。将WAR转换成EAR和其他Glassfish故事

在我的项目中,我使用了tomcat并部署了WAR文件。但是现在有些老板想要部署EAR文件。所以我们走了。

我第一次下载Glassfish(不知道它是否是像我这样的新手的apropiate应用程序服务器),安装它和所有(我甚至在autodeploy> __ <中部署了hello.war)。然后准备一个EAR文件。

从我所知道的,我只需要在Eclipse中创建一个企业应用程序项目并添加到模块我的战争文件。这会自动更改application.xml文件(感谢eclipse项目!)。所以我将它导出到EAR文件并将其上传到glassfish服务器。

奇迹的奇迹,它不起作用。

我也尝试在这个新的闪亮玻璃鱼中部署旧的WAR文件,但它在http-404上找不到错误。 Glassfish的似乎是说,我的项目是不是在〜/域/域1 /文档根目录。顺便说一句,我使用的Windows和我知道的GlassFish和窗户之间的一些问题,是由于一些更新打开的文件或这样的。

所以我必须问: 首先,我是否正确地执行EAR包? 其次,我需要做一些特殊的配置到GlassFish服务器部署EAR和WAR文件?

谢谢!

+1

显然有什么不对劲......但考虑到这个问题的详细程度,我并没有最清楚的想法,即移动部件是否失控......甚至是什么部件。您使用的Eclipse,GlassFish和GlassFish适配器的哪个版本为 ?你是如何'上传'(你的EAR)到GlassFish服务器的?您是如何将WAR文件部署到GlassFish的?有什么有趣的域\ domain1 \ logs \ server.log – vkraemer 2010-04-28 17:16:40

+1

有一件事我已经在Eclipse中找到了glassfish连接器,当你使用WAR时,它可以与只有文件更改更新的分解WAR一起使用。在使用EAR时,它会在更新后重新部署重新打包的WAR文件。差异是惊人的。 – 2010-04-29 20:20:17

回答

5

如果您的应用程序没有EJB,我认为将它部署为EAR没有任何价值。

域名和网址应该以某种方式涉及您的域名。我是WebLogic/JBOSS用户。有什么方法可以在Glassfish中创建域?如果是的话,那就把EAR放进去。也许this会有所帮助。

+0

谢谢!我也认为在WAR中部署EAR没有任何价值,因为它是一个简单的项目。可悲的是,这不是我的决定。 感谢您的链接! 我继续出现配置错误。 – Random 2010-04-28 14:53:37

2

在我的项目中,我使用了tomcat并部署了WAR文件。但是现在有些老板想要部署EAR文件。所以我们走了。

得到这个决定的动机会很有意思。总的趋势是使事情变得更简单,而不是更复杂(例如Java EE 6中,也可以把EJB的直接直接进入WAR)。

我先下载Glassfish的(不知道这是否是对像我这样的新手的apropiate应用服务器),instaled它和所有的(我甚至部署hello.war在自动部署> _ <)。然后准备一个EAR文件。

我非常喜欢GlassFish v3,它提供了一个非常高效的开发环境。而且我并不觉得复杂,简单的需求,管理控制台使友好,如果你不使用它。

(...)所以我将它导出到一个EAR文件并上传到glassfish服务器。奇迹的奇迹,它不起作用。

检查服务器日志。

我也尝试在这个新的闪亮玻璃鱼中部署旧的WAR文件,但它在http-404上找不到错误。

您尝试访问哪个网址?您如何在管理控制台中看到该应用程序。

所以我必须问:首先,我是否正确地做EAR包?

不知道,我不依赖于IDE。显示你的耳朵结构(使用tree),显示你的application.xml

我是否需要对glassfish服务器进行一些特殊配置才能部署EAR和WAR文件?

有几种方法来部署一个WAR,耳(通过控制台,通过autodeploy目录,通过asadmin命令行工具),他们所有工作开箱。

1

首先,感谢您的回复。我会尽力收集所有这些信息。 我认为将其更改为EAR文件的动机与“公司决策”有关,也可能是某人在服务器上安装某个应用程序时不想编写上下文,尽管我不是公司中的任何人来挑战这个。我的错。 他们还在使用Java EE 1.5。 我在我的Eclipse Galileo上安装了Glasshfish 2.1和Glassfish 2.1连接器。我认为它在eclipse conector,控制台和web管理之间管理起来相当容易。我最终找到了一个可以做任何行动的地方。与Tomcat相比,它非常大,我感觉有点失落,但我试着缓慢地尝试。

在我的EAR文件中,WAR文件不多,而在META-INF目录中有我的application.xml和manifest.mf。我的application.xml写着:

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" 
    id="Application_ID" version="5"> 
    <display-name>foo</display-name> 
    <module> 
    <web> 
     <web-uri>FOO.war</web-uri> 
     <context-root>foo</context-root> 
    </web> 
    </module> 
</application> 

我通过http://localhost:8080/foo访问URL的server.log的节目(在西班牙,我将它翻译我可以管理是最好的),由我使用Web服务来管理的方式玻璃鱼,而不是赢得控制台。

[#| 2010-04-29T09:46:59.722 + 0200 | INFO | sun-appserver2.1 | javax.enterprise.system.tools.deployment | _ThreadID = 26; _ThreadName = Thread-419; |与moduleid = foo |#]

[#| 2010-04-29T09:46:59.909 + 0200 | SEVERE | sun-appserver2.1 | org.apache.catalina.core.StandardContext | _ThreadID = 27; _ThreadName = Thread -418; _RequestID = 9bff8714-d870-4f30-8a7a-22dca0375b6b; | PWC1300:上下文中的资源初始化时出错/ foo |#]

[#| 2010-04-29T09:46:59.909 + 0200 | SEVERE | sun-appserver2.1 | org.apache.catalina.core.StandardContext | _ThreadID = 27; _ThreadName = Thread-418; _RequestID = 9bff8714-d870-4f30-8a7a-22dca0375b6b; | PWC4430:文档库C:\孙\ SDK \ jdk的\ GlassFish的\域\ DOMAIN1 \文档根目录\ FOO不存在,或者它是无法读取的目录|#]

[#| 2010-04-29T09:46:59.925 + 0200 |严重|阳光appserver2.1 | org.apache.catalina.core。由于以前的错误|#]

[#|#]标准上下文| _ThreadID = 27; | 2010-04-29T09:46:59.925 + 0200 | INFO | sun-appserver2.1 | org.apache.catalina.core.StandardContext | _ThreadID = 27; _ThreadName = Thread-418; | PWC1240:WebModule [/ foo]容器还没有启动|#]

正如我所说的,我也尝试直接使用WAR,但它也没有工作。我部署了它(或者说它),然后它有一个漂亮的按钮(在操作列)启动Web服务,服务器给我http://localhost:4848/applications/webApplicationLinks.jsf?appID=FOO&contextRoot=/FOO(耳边是foo,而战争是FOO),并将我重定向到一个页面告诉我,如果服务器或监听器没有运行,则链接可能无法工作。下面的链接是http://localhost:8080/FOOhttp://localhost:8181/FOO(都不工作,在8080中的AKA http-404和在8181中的空白页)。顺便说一句,这个开始按钮不可用在耳边,我不喜欢那个。

至于server.log上的其他有趣的事情,它似乎没有多说,但我可能是错误的,因为我在服务器领域真的很新。