-
도커에 weblogic 설치 / 배포카테고리 없음 2022. 4. 17. 02:16
1. 도커에 weblogic 설치
docker pull ismaleiva90/weblogic12
2. 도커에서 오라클 로그인docker login container-registry.oracle.com
3. container-registry.oracle.com 라이센스 accept
container-registry.oracle.com 로 접속해서 sign in 로그인하기Middleware 선택 >
> weblogic 선택 continue > accept
4. D:\apps\docker\oracle-weblogic 를 만들어 domain.properties 생성//domain.properties username=weblogic password=weblogic1
5. 명령어 실행docker container run -d -p 7000:7001 -p 9001:9002 -it --name wlsnode02 -v D:/apps/docker/oracle-weblogic:/u01/oracle/properties container-registry.oracle.com/middleware/weblogic:12.2.1.3
설정 후 웹로직에 접속할 때
https://localhost:7001/console 로 해봤는데 그럼 아래와 같이 권한 거부가 떨어진다.
관리 포트가 사용으로 설정된 경우(주로 보안모드로) 해당 포트를 이용해서 콘솔에 액세스하라는 내용인데
9002 를 관리포트로 설정했으니 9002로 접속하라는 말인 것 같다.
그리고 9002 로 접속하니 SSL/TSL 접속 실패 오류가 났는데 , 이것은 https, http 접속 차이였다.
http로 접속하니 오류가 나서 https 로 접속하니 해결되었다.
웹로직에 배포하기
그래들 war
선택한 애플리케이션에 액세스할 수 없습니다.
Validation problems were found /u01/oracle/user_project/domains/base_domain/weblogic.utils.classloader.GenericClassLoader@ ..
..annotation: /web-inf/lib/tomcat-embed-el-9.0.60.jar!/META-INF/web-fragment.xml:18:3:18:3:
problem:cvc-enumeration-valid:string value '4.0' is not a valid enumeration value for web-app-versionType in namespace ..
스프링 부트 버전이 2.5 인데 내장 tomcat 버전이 9.0대이다. 톰캣 버전에 따라 서블릿 스펙이 달라지는데
웹로직 12.2.1.3 은 서블릿이 3.1까지만 지원되고 톰캣 버전 9.0.대는 서블릿 스펙이 4.0 이라서
오류가 나는 것이다.
버전을 내려서 다시 빌드해 올리니 이상없이 진행되었다.
<Error> <HTTP> <BEA-101165> <Could not load user defined filter in web.xml: weblogic.websocket.tyrus.TyrusServletFilter. java.lang.ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to org.glassfish.tyrus.server.TyrusServerContainer at weblogic.websocket.tyrus.TyrusServletFilter.init(TyrusServletFilter.java:80) at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:400) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197) at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) Truncated. see log file for complete stacktrace
웹로직 엔진의 websocket-api.jar 보다 톰캣의 tomcat-embed-websocket-8.5.28.jar 가 먼저 로딩되며 WsServerContainer 클래스가 올라온 것 ?
tomcat-embed-websocket 라이브러리는 웹로직에서 사용할 일 없기 때문에 제거한다?
localhost:7001/ {contextpath } = > 404 에러
스프링부트에 weblogic.xml 을 추가..
*스프링 부트 웹로직 배포 https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.build
*오류 참조 https://blog.naver.com/PostView.nhn?blogId=dae0park&logNo=222065875076&from=search&redirect=Log&widgetTypeCall=true&directAccess=false https://parankiho.tistory.com/entry/JavalangClassCastExceptionorgapachetomcatwebsocketserverWsServerContainer-incompatible-with-orgglassfishtyrusserverTyrusServerContainer-%EC%B2%98%EB%A6%AC *web-fragment 란 https://javajee.com/deploying-using-web-fragments-web-fragmentxml
*도커에 웹로직 설치하기 https://www.middlewareinventory.com/blog/weblogic-docker/ https://forgiveall.tistory.com/613
* 스프링부트 톰캣 버전 변경하기 https://goateedev.tistory.com/135
반응형