Весенняя загрузка с Java 7 в Weblogic

У меня есть требование развернуть приложение весенней загрузки на сервере weblogic 11g. Сервер weblogic поддерживает только Java 7. Пожалуйста, помогите мне выбрать правильную версию весенней загрузки, и я получаю следующую ошибку, если использую версию весенней загрузки 1.5.6.RELEASE.

test При наведении курсора отображается следующее сообщение. «Несколько маркеров в этой строке - тип javax.servlet.ServletContext не может быть разрешен. На него косвенно ссылаются из требуемых файлов .class - тип javax.servlet.ServletException не может быть разрешен. На него косвенно ссылаются из требуемых файлов .class»

Application.java

package com.example.ap;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.WebApplicationInitializer;

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan({ "com.example.ap" })
public class Application extends SpringBootServletInitializer implements 
WebApplicationInitializer {

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder 
builder) {
    return builder.sources(Application.class);
}
}

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example.ap</groupId>
<artifactId>test</artifactId>
<version>0.0.1</version>
<packaging>war</packaging>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
    <relativePath />
</parent>

<properties>
    <java-version>1.7</java-version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
</project>

ResourceController.java

package com.example.ap;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/resource")
public class ResourceController {

    @RequestMapping(method = RequestMethod.GET)
    String readResource() {
        return "hello!";
    }
}

В папке src / main / webapp / WEB-INF у меня есть weblogic.xml и dispatcherServlet-servlet.xml

Я исключил встроенный tomcat, потому что мне нужно развернуть его в weblogic. Пожалуйста, помогите мне найти проблему.

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:context-root>sg-manutouch-lite-api</wls:context-root>
<wls:container-descriptor>
    <wls:prefer-application-packages>
        <wls:package-name>org.slf4j.*</wls:package-name>
        <wls:package-name>org.springframework.*</wls:package-name>
    </wls:prefer-application-packages>
</wls:container-descriptor>
<wls:weblogic-version>10.3.6</wls:weblogic-version>

</wls:weblogic-web-app>

dispatcherServlet-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">


person Sowmea shree    schedule 22.03.2019    source источник
comment
Ваши зависимости неверны. Вы исключили tomcat и, следовательно, api сервлета, что означает, что ваш код получает предупреждения. При создании войны за развертывание не исключайте зависимости, а отметьте provided. Также не связаны, но удалите @ComponentScan и @EnableAutoConfiguration, которые уже подразумеваются @SpringBootApplication.   -  person M. Deinum    schedule 25.03.2019
comment
Я добавил provided в зависимость от tomcat и попробовал. Когда я пытаюсь развернуть сервер weblogic 11g, я не уверен, работает ли он на tomcat или weblogic. Я не могу попасть в конечную точку.   -  person Sowmea shree    schedule 26.03.2019
comment
Поверьте, он работает на веб-логике. Вы сможете отлаживать только в том случае, если в weblogic включена удаленная отладка и вам разрешено / вы можете подключиться к серверу, иначе вы не сможете отлаживать.   -  person M. Deinum    schedule 26.03.2019
comment
Удаленная отладка все еще включена, если я попадаю в конечную точку, я получаю ошибку 404 Not found. То же самое работает, если я использую Spring framework вместо Spring boot.   -  person Sowmea shree    schedule 26.03.2019
comment
Проверьте свои журналы и убедитесь, что вы вызываете правильный URL.   -  person M. Deinum    schedule 26.03.2019
comment
Я заметил, что как только я добавляю приложение на сервер, я получаю это предупреждение - <Warning> <HTTP> <BEA-101377> <Filtering class loader configuration ignored for web module sg-manutouch-lite-api.war of application _auto_generated_ear_>   -  person Sowmea shree    schedule 27.03.2019
comment
Может ли кто-нибудь помочь с файлом xml, который необходимо добавить в папку WEB-INF. Я добавил weblogic.xml и dispatcherServlet-servlet.xml. Это должен быть web.xml?   -  person Sowmea shree    schedule 27.03.2019
comment
Зачем вам нужен web.xml? Какая версия контейнера сервлетов - это Weblogic 11g? Мне нужен web.xml, вам также нужен другой способ начальной загрузки вашего приложения.   -  person M. Deinum    schedule 27.03.2019
comment
Я использую версию 2.5. Сервер Weblogic 11g (10.3.6) поддерживает сервлет v2.5 (макс.). Я добавил XML-файлы weblogic и dispatcherservlet. Я понятия не имею, почему конечная точка не вызывается.   -  person Sowmea shree    schedule 27.03.2019
comment
Это объясняет, почему это не работает. Вы используете способ начальной загрузки Servlet 3.0, поэтому ваше приложение не запускается. Вам понадобится web.xml вместе с Spring Boot Legacy для начальной загрузки приложения.   -  person M. Deinum    schedule 27.03.2019
comment
О, я попробую этот способ. Спасибо.   -  person Sowmea shree    schedule 27.03.2019
comment
М. Дейнум, прошу вас проголосовать за мой вопрос, если вы считаете его уместным. Спасибо.   -  person Sowmea shree    schedule 31.03.2019


Ответы (1)


Weblogic 11g (10.3.4) будет поддерживать сервлет 2.5 (макс.). Если необходимо создать приложение с использованием сервлета 2.5, тогда web.xml является обязательным. Spring boot способ настройки приложения с помощью SpringBootServletInitializer, WebApplicationInitializer будет поддерживаться только начиная с сервлета 3.0. Спасибо за руководство M.Denium.

person Sowmea shree    schedule 30.03.2019