Я сделал веб-приложение на основе SpringBoot 2.x. Я использую Intellij Idea 2019 и там я настраиваю развертывание моего веб-приложения на weblogi c 12.x.
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</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>
Я сделал *. xml
src / main / webapp /WEB-INF/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">
</beans>
src / main / webapp / WEB-INF / weblogi c. 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.4/weblogic-web-app.xsd">
<wls:weblogic-version>12.2.1</wls:weblogic-version>
<wls:context-root>web</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:package-name>javax.persistence.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>
Затем я создал классы ...
WebLogicApplication.class
@SpringBootApplication
public class WebLogicApplication {
public static void main(String[] args) {
SpringApplication.run(WebLogicApplication.class, args);
}
}
ServletInitializer.class
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(WebLogicApplication.class);
}
}
stati c content .. .
static / index . html
Я установил на Intellij для запуска веб-приложения на сервере WebLogi c.
Но я получаю сообщение об ошибке ...
одна ошибка
<The log file C:\oracle_home_develop\user_projects\domains\base_domain\servers\AdminServer\logs\AdminServer.log will be rotated. Reopen the log file if tailing has stopped. This can happen on some platforms, such as Windows.> <10.02.2020 11:35:44,322 MSK> <Error> <Default> <BEA-000000> <Got an exception while rotating log file. java.lang.RuntimeException: com.bea.logging.LogRotationException: Error rotating log file C:\oracle_home_develop\user_projects\domains\base_domain\servers\AdminServer\logs\AdminServer.log at com.bea.logging.LogFileRotator$1.run(LogFileRotator.java:254) at com.bea.logging.LogFileRotator.executeGlobalAccountRunnerTask(LogFileRotator.java:243) at com.bea.logging.LogFileRotator.rotate(LogFileRotator.java:248)
вторая ошибка
[2020-02-10 11: 35: 58,625] Артефакт weblogi c: война взорвалась: артефакт развертывается, пожалуйста, подождите ... <10.02.2020 11: 35: 58,915 MSK> <[WebAppModule (weblogic_war_exploded: weblogi c -0.0.1-SNAPSHOT)] Ошибка синтаксического анализа дескриптора в веб-приложении Приложение "E:! _ Install \ git_hub_projects \ weblogic \ target \ weblogi c -0.0.1-SNAPSHOT" weblogi c .application.descriptor.MissingRootElementException: [Munger: 2156204] Веб-приложение элемента root отсутствует в файле дескриптора E:! _ Установить \ git_hub_projects \ weblogic \ target \ weblogi c -0.0.1-SNAPSHOT / WEB-INF / web. xml. в weblogi c .application.descriptor.BasicMunger2._onStartElement (BasicMunger2. java: 506) в weblogi c .application.descriptor.BasicMunger2.next (BasicMunger2. java: 441) в weblogi c. application.descriptor.VersionMunger._next (VersionMunger. java: 346) в weblogi c .application.descriptor.VersionMunger.next (VersionMunger. java: 231) в weblogi c .application.descriptor.VersionMunger. потреблениеInputStream (VersionMunger. java: 599) усечено. см. файл журнала для полной трассировки стека </p>
<10.02.2020 11: 35: 58 920 MSK>
Update-1
I исправлено.
<?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://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
<wls:weblogic-version>12.2.1</wls:weblogic-version>
<wls:context-root>web</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:package-name>javax.persistence.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>
Я удалил src / main / webapp / WEB-INF / dispatcherServlet-servlet . xml
Я проверил * .war - веб-сайт не генерируется. xml
Но я снова получаю сообщение об ошибке
[Munger: 2156204] В файле дескриптора отсутствует элемент root элемента E:! _ Install \ git_hub_projects \ weblogic \ target \ weblogi c -0.0.1-SNAPSHOT / WEB-INF / web. xml.
Update_3
Я изменил точка входа ...
@SpringBootApplication
public class WebLogicApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
public static void main(String[] args) {
SpringApplication.run(WebLogicApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(WebLogicApplication.class);
}
}
, а затем
пом. xml
<?xml version="1.0" encoding="UTF-8"?>
<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
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.weblogic</groupId>
<artifactId>weblogic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>weblogic</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<version.apache.maven.plugins>3.8.1</version.apache.maven.plugins>
<version.mapstruct>1.3.0.Final</version.mapstruct>
<version.apache.common.lang3>3.9</version.apache.common.lang3>
<version.apache.commons.text>1.8</version.apache.commons.text>
<version.apache.commons.beanutils>1.9.4</version.apache.commons.beanutils>
<version.datasource.proxy>1.6</version.datasource.proxy>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<!--исключаем из компиляции встроенный Tomcat-->
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
com.weblogi c .weblogi c .controller . HomeController
@Controller
public class HomeController {
private String message = "Hello World";
@GetMapping("/")
public String getIndex() {
return "index";
}
}
Я снова собрал проект, но развернул его на Weblogi c (не с Intellij Idea) и снова нахожу ошибку
[http://172.17.89.177: 7001 / web]
Ошибка 500 - Внутренняя ошибка сервера
java .lang.NullPointerException в weblogi c .servlet.internal.ServletResponseImpl.sendContentError (ServletResponseImpl. java: 738) в weblogi c .servlet.internal.ServletResponserl : 796) в сети 349) по адресу org.springframework.boot.web.servlet.support.ErrorPageFilter $ ErrorWrapperResponse.getWriter (ErrorPageFilter. java: 363) по адресу org.springframework.boot.autoconfigure.web.servlet.Merv.Conf_Error.Eror ErrorMvcAutoConfiguration. java: 227) по адресу org.springframework.web.servlet.DispatcherServlet.render (DispatcherServlet. java: 1373) по адресу org.springframework.web.servlet.DispatcherServlet.processDislet_serv * 12: Disparter 12 в org.springframework.web.servlet.DispatcherServlet.doDispatch (Dispatc . HerServlet java: 1057) по адресу org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet. java: 943) по адресу org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet. java: 1006) веб-сайт org. .FrameworkServlet.doGet (FrameworkServlet. java: 898) по адресу javax.servlet.http.HttpServlet.service (HttpServlet. java: 687) по адресу org.springframework.web.servlet.FrameworkServlet.serverServlet. : 883) на javax.servlet.http.HttpServlet.service (HttpServlet. java: 790) на weblogi c .servlet.internal.StubSecurityHelper $ ServletServiceAction.run (StubSecurityHelper. javalo32. At at 295 at at 295) * .servlet.internal.StubSecurityHelper $ ServletServiceAction.run (StubSecurityHelper. java: 260) в weblogi c .servlet.internal.StubSecurityHelper.invokeServlet (StubSecurityHelper. java: 137) * 110101 * 11 * Update_4
weblogi c. 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://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
<wls:weblogic-version>12.2.1.4.0</wls:weblogic-version>
<wls:context-root>/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:package-name>javax.persistence.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>
Я также создал src / main / webapp / WEB -INF / веб. xml. Он пуст.
src / main / webapp / index. html и только он здесь.
Run / DebugCongiguration
URL: http://localhost: 7001 / api
и все остальное как обычно
Это работает сейчас.
Я думаю. .. Необходимо создать java -конфигурацию. Там будут описаны правила доступа к контенту stati c ...
Я видел много примеров, когда контент stati c находился в / resources. Как мне его оформить сейчас? Как работать в связке: Spring Bolt 2.x + Html + Weblogi c? Как мне ограничить доступ к содержанию stati c?
У кого есть идеи как это исправить?
Обновление
Я создал stati c содержимое (*. html, *. css) в:
- src / main / resources / templates
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello Weblogic!</title>
<link type="text/css" th:href="@{/css/style.css}" rel="stylesheet"/>
</head>
<body>
<div class="st">
Hello Weblogic!!!!!!!!!!!!!!!
</div>
</body>
</html>
@Controller
public class IndexController {
@RequestMapping(value="/", method= RequestMethod.GET)
public String index() {
return "index";
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
- src / main / webapp / WEB-INF / web. xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
- src / main / webapp / WEB-INF / weblogi c. 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
https://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app
https://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
<wls:context-root>sat</wls:context-root>
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>org.slf4j</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>
Работает.