【问题标题】:Spring Rest Controller not working on weblogic 10.3 / Spring bootSpring Rest Controller 无法在 weblogic 10.3 / Spring boot 上运行
【发布时间】:2018-09-29 21:49:14
【问题描述】:

我在 weblogic 10.3 上部署了一个 spring boot rest 应用程序,但是无法访问其余资源......它总是给出 404,尽管它在 tomcat 和 weblogic 12 上运行良好......我尝试将 index.html 页面放在下面webapp ,它是可访问的(即应用程序正在运行),但 REST 资源不是

weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">
    <wls:weblogic-version>10.3.6</wls:weblogic-version>
    <wls:context-root>onlinechannel</wls:context-root>
    <wls:container-descriptor>
        <wls:prefer-application-packages>           
            <wls:package-name>org.springframework.*</wls:package-name>
            <wls:package-name>org.springframework.util.MultiValueMap.*</wls:package-name>
            <wls:package-name>org.slf4j.*</wls:package-name>
            <wls:package-name>com.fasterxml.jackson.databind.*</wls:package-name>
            <wls:package-name>com.fasterxml.jackson.*</wls:package-name>
            <wls:package-name>com.fasterxml.jackson.datatype.jsr310.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>

web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <display-name>app</display-name>

    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>

    <!-- The Usual Welcome File List -->
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

dispatcher-servlet.xml :(没有它也无法工作)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

【问题讨论】:

  • Weblogic 10 是 servlet 2.5 容器而不是 servlet 3.0 容器。要将 Spring Boot 应用程序部署到遗留容器,您必须考虑 Spring Boot 遗留项目,否则它将无法正常工作。
  • 你的意思是 spring legacy 项目不是 spring boot legacy,对吗?因为据我所知,spring boot 始终以 servlet 3 为目标,所以请您提供一个资源来开始
  • 我明确指出Spring Boot Legacy... Spring Boot 适用于 Servlet 3 容器。 Weblogic 10 不是 Servlet 3 容器。但是,如果您使用 Spring Boot 2,则最低版本是 Servlet 3.1 容器,那么您根本无法部署到 weblogic 10。
  • 您能否详细说明我应该如何“考虑”...我的理解是我需要像在遗留项目中一样修改 web.xml 并将遗留项目包含为我项目中的一个依赖项...如果有错误请纠正我...我担心遗留项目支持引导 1.1.4 但我使用的是引导 2.0...我是否有义务将其作为依赖项包含在内或者它只是如果我需要使用提到的功能,例如过滤器、安全过滤器、注释定义的 servlet 等
  • Spring Boot Legacy 不适用于 Spring Boot 2。至于 Spring Boot 2,所需的最低 servlet 版本是 3.1。因此,您无法将 Spring Boot 2 应用程序部署到 weblogic 10 实例,因为它是 Servlet 2.5 容器。

标签: spring spring-boot weblogic12c weblogic-10.x spring-restcontroller


【解决方案1】:

Weblogic 10servlet 2.5 容器不是 servlet 3.0 容器。

要将 Spring Boot 应用程序部署到遗留容器,您必须考虑 Spring Boot 遗留项目,否则它将无法正常工作。

spring-boot-legacy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2021-08-28
    • 1970-01-01
    • 2020-10-29
    • 2019-05-10
    • 2018-10-05
    • 2018-05-13
    相关资源
    最近更新 更多