gpt4 book ai didi

java - 带有 Tomcat Maven 插件的 Struts 2 应用程序返回 404 错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:54 24 4
gpt4 key购买 nike

首先,关于这个特定的应用程序设置和错误有很多问题。然而,大多数(如果不是全部)看似重复的问题都是通过添加丢失的 jar 来解决的。我正在使用 Maven 作为我的依赖项,无论如何,我的外部库列表看起来很完整。

话虽如此,就我而言,神秘之处在于 Tomcat Maven 插件似乎基于

console output

但是,访问 http://localhost:8080/sure/hello 给我带来了令人心痛的“资源不可用”错误。这让我得出结论,这是一个映射问题,但我的 web.xmlstruts.xml 对我来说看起来都很好。

web.xml

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

struts.xml

<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="hello" class="com.crace.HelloAction">
<result name="success">/web/WEB-INF/index.jsp</result>
</action>
</package>

<constant name="struts.devMode" value="true" />
</struts>

pom.xml

<groupId>com.crace.strangewave</groupId>
<artifactId>Sure</artifactId>
<version>1.0-SNAPSHOT</version>
<name>sure</name>
<packaging>war</packaging>

<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.5</version>
</dependency>

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello</title>
</head>
<body>
<s:property value="greeting"/>
</body>
</html>

HelloAction.java

public class HelloAction extends ActionSupport {

private String greeting;

private static final Logger logger = Logger.getLogger(HelloAction.class);

public String execute() throws Exception {

setGreeting("Hello World!");

// logs debug message
if (logger.isDebugEnabled()) {
logger.debug("execute()!");
}

// logs exception
logger.error("This is Error message", new Exception("Testing"));


return SUCCESS;
}

public String getGreeting() {
return greeting;
}

public void setGreeting(String greeting) {
this.greeting = greeting;
}

至于日志记录,我在这个嵌入式版本中唯一能找到的就是渲染消息,例如:

0:0:0:0:0:0:0:1 - - [10/Jun/2017:13:45:38 -0400] "GET /sure/hello HTTP/1.1" 404 971 http-bio-8080-exec-3 1
0:0:0:0:0:0:0:1 - - [10/Jun/2017:13:45:38 -0400] "GET /sure/hello HTTP/1.1" 404 971 http-bio-8080-exec-5 2

编辑:我提供了 Tomcat 管理器的屏幕截图,显示我的 war 已正确部署到服务器。同样,这是一个映射问题(因此是 404),但我看不出映射出了什么问题!

Tomcat manager app

最佳答案

尝试这个网址http://localhost:8080

如果您仍然收到资源不可用错误,您可以尝试以下操作:

  1. 右键单击服务器并单击属性

  2. 如果位置是工作区元数据,请单击切换位置,这样它就会像

    server properties

  3. 点击“应用/确定”

  4. 现在双击服务器。
  5. 选择服务器位置作为使用tomcat安装

    See Yellow highlight on image

  6. 保存并重新启动服务器并尝试。

关于java - 带有 Tomcat Maven 插件的 Struts 2 应用程序返回 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44486486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com