Programming/Java
Tomcat 에 배포되던 소스를 JBoss(Wildfly) 에 배포
zepinos
2019. 7. 23. 16:18
반응형
회사에서 외장 Tomcat 에 Deploy 하는 소스가 있었습니다. 저는 반골이라, Tomcat 쓰고 싶지 않았습니다. 그래서 다음과 같이 Wildfly 을 위한 내용을 추가하여 Tomcat 와 마찬가지로 Wildfly 에서 제대로 동작하도록 하였습니다.
참고로, 소스는 Java 11, Spring 4 with Maven 이었습니다. (힘들다...)
1. jboss-web.xml
기존 프로그램은 context root 가 / 였습니다. Wildfly 는 배포기술자를 이용해 이 경로를 수정해줘야 합니다. 그래서 WEB-INF/ 아래에 jboss-web.xml 파일을 생성하고 다음과 같은 내용을 추가해야 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.jboss.com/xml/ns/javaee
http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
<context-root>/</context-root>
</jboss-web>
2. pom.xml
Java 9 에서 직소 프로젝트가 적용되면서 참 많은 혼란을 겪고 있습니다. 아래와 유사한 오류 메세지가 발생할 수 있습니다.
WildFlySecurityManager uses sun.misc.Unsafe.
Unsafe works only with jdk.unsupported module enabled.
jdk.unsupported is not resolved by default so we need to activate it
이 문제를 해결하기 위해 pom.xml 에 다음과 같은 내용을 추가해야 합니다.
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<warName>test-war</warName>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
<archive>
<manifestEntries>
<Dependencies>jdk.unsupported</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
이미 maven-war-plugin 이 설정되어 있을 가능성이 클것입니다. <archive> 의 내용만 추가하면 오류가 발생하지 않을 것입니다.
반응형