部署目录

时间:2015-12-12 07:40:52

标签: eclipse maven deployment jboss wildfly

我有一个" 404 Not found"访问时出现错误消息: Eclipse中的http://localhost:8080/bword

此应用程序在Wildfly中提供。在POM.xml中,它定义:

<artifactId>bword</artifactId>
<packaging>war</packaging>
<name>bword</name>

然而,奇怪的是,当我在Eclipse中运行配置为Wildfly 9.0作为服务器的应用程序时,部署到wildfly / standone / deployments /中的是bbword.war,如下所示:

[abigail@localhost wildfly-9.0.2.Final]$ ls standalone/deployments/
bbword.war/          bbword.war.deployed 

哪个错了,应该是&#34; bword.war /&#34;和&#34; bword.war.deployed&#34;。

Eclipse之外,如果我&#34; mvn clean package&#34;在项目&#34; bword&#34;下,我可以得到&#34; bword.war&#34;在目标/目录下。

请参阅附件截图以供参考。我怀疑在我的pom,或者日食,或者其他什么地方,有一个错误的配置&#34; bbword&#34;而不是&#34; bword&#34;,但我无法真正找到它。我无法找到&#34; bbword&#34;的任何痕迹。什么决定了部署下部署的war文件的名称?

见附件。

enter image description here

已编辑(POM.xml的一部分):

<build>
            <!-- Set the name of the war, used as the context root when the app 
                is deployed -->
            <finalName>${project.artifactId}</finalName>
            <plugins>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${version.war.plugin}</version>
                    <configuration>
                        <!-- Java EE 7 doesn't require web.xml, Maven needs to catch up! -->
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
                <!-- WildFly plugin to deploy war -->
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <version>${version.wildfly.maven.plugin}</version>
                </plugin>
                <!-- Compiler plugin enforces Java 1.6 compatibility and activates 
                    annotation processors -->
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${version.compiler.plugin}</version>
                    <configuration>
                        <source>${maven.compiler.source}</source>
                        <target>${maven.compiler.target}</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>

还有一个补充:

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
17:32:35,508 INFO  [org.jboss.modules] (main) JBoss Modules version 1.4.3.Final
17:32:35,702 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final
17:32:35,761 INFO  [org.jboss.as] (MSC service thread 1-6) WFLYSRV0049: WildFly Full 9.0.2.Final (WildFly Core 1.0.2.Final) starting
17:32:36,573 INFO  [org.jboss.as.controller.management-deprecated] (ServerService Thread Pool -- 22) WFLYCTL0028: Attribute 'job-repository-type' in the resource at address '/subsystem=batch' is deprecated, and may be removed in future version. See the attribute description in the output of the read-resource-description operation to learn more about the deprecation.
17:32:36,594 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) WFLYDS0004: Found bbword.war in deployment directory. To trigger deployment create a file called bbword.war.dodeploy
17:32:36,625 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http)
17:32:36,647 INFO  [org.xnio] (MSC service thread 1-5) XNIO version 3.3.1.Final

...

这是我点击&#34;作为服务器运行后的控制台消息的最初部分&#34;在Wildfly上。它似乎在部署目录中显示&#34; Found bbword.war。&#34;在运行它之前,我删除了所有独立/部署/ *。它以空目录开头。看来&#34; bbword.war&#34;每当我运行服务器时,都会复制到此目录。我无法弄明白。我使用&#34; find / -name bbword.war&#34;在我的电脑上但无法找到此文件。真的很困惑。

更新:

最终发现了问题:在项目&#39; bword&#39;下,有一个&#34; .setting&#34;目录,其中包含此文件: bword / .settings / org.eclipse.wst.common.component

其中有一条线:&#34; bbword&#34;是我之前使用的部署名称。删除此目录并在Maven中运行&#34;更新&#34;似乎解决了这个问题。特别是,我需要做两件事,首先删除这个目录,.setting,然后更新maven。

有几天浪费了这个,但很高兴知道这件事。

4 个答案:

答案 0 :(得分:1)

首先,尝试在服务器上部署maven构建的工件(bword.war)(不要忘记先完全清理所有Eclipse部署的工件)。
您只需将bword.war/target文件夹移至path_to_wildfly/standalone/deployments文件夹,即可完成此操作。
检查服务器日志文件,查看部署战争后应显示的消息:Registered web context: <web_context_name>。 如果它显示 / bbword - 这不是您所期望的,请检查jboss-web.xml中是否有src/main/webapp/WEB-INF文件,将其指定为web-context值。

如果maven工件导致正确的webcontext - / bword ,则它必须是Eclipse配置问题。您是否尝试过从Maven更新Eclipse项目? :

  1. 右键点击您的项目
  2. 选择 Maven
  3. 选择更新项目
  4. 从Wildfly服务器中删除您的项目,然后重新添加。如果这没有帮助,请尝试添加新的服务器运行时并在那里添加项目。最后的办法是创建一个新的Eclipse工作区。
  5. 祝你好运。

答案 1 :(得分:1)

有同样的问题并通过更正这两个文件来修复它:

.settings / org.eclipse.wst.common.component =&gt; deploy-name等

的.project =&GT;名称

答案 2 :(得分:0)

列出的解决方案对我不起作用。 我不得不在Eclipse中创建一个全新的项目:

文件->新建->项目

正确命名它,然后从旧项目中复制粘贴必要的代码。 现在服务器名称正确。

答案 3 :(得分:0)

如果您从intellij idea config运行,请在项目结构中签出工件名称。在pom.xml中修复finalname标签后,我不得不手动重命名。最好避免在工件名称中添加任何时间戳。