2

一起使用 Spring 和 Struts 在控制台中不会出现错误消息,而只会出现:

HTTP 状态 404 - Servlet 操作不可用

在浏览器中。

日志没有提供任何线索。

4

1 回答 1

2

当 Struts 的 action servlet 因任何原因无法启动时,产生的错误可能如上。

在我的例子中 - 使用 springs spring-struts 集成的 struts - 我的 Web 应用程序的类路径中缺少必要的 spring jar(尤其是 spring-struts)。

以下 Maven 依赖项有效:

    <properties>
    <spring.maven.artifact.version>
        3.0.3.RELEASE
    </spring.maven.artifact.version>

    <spring.security.maven.artifact.version>
        3.0.3.RELEASE
    </spring.security.maven.artifact.version>

</properties>
        <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.maven.artifact.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-asm</artifactId>
        <version>${spring.maven.artifact.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>${spring.maven.artifact.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.maven.artifact.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-struts</artifactId>
        <version>${spring.maven.artifact.version}</version>
        <exclusions>
            <exclusion>
              <groupId>struts</groupId>
              <artifactId>struts</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring.security.maven.artifact.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring.maven.artifact.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring.maven.artifact.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
        <version>${spring.maven.artifact.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>com.springsource.org.apache.commons.codec</artifactId>
        <version>1.4.0</version>
    </dependency>

    <!-- Struts 1.3 framework -->
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts-core</artifactId>
      <version>1.3.10</version>
    </dependency>

    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts-taglib</artifactId>
      <version>1.3.10</version>
    </dependency>

    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts-el</artifactId>
      <version>1.3.10</version>
    </dependency>

    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts-extras</artifactId>
      <version>1.3.10</version>
    </dependency>

    <!-- be sure to include extra struts modules, as needed,
         especially for used struts-plugins -->
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts-tiles</artifactId>
      <version>1.3.10</version>
    </dependency>

注意:如果你不使用 spring-security,你很可能会删除 spring-security 相关的依赖项,spring-struts 中的排除也是必要的,以包含最新的 struts 版本而不是 1.2.9

于 2010-08-10T06:30:00.517 回答