ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 도커에 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 ..

    *web-fragment 란 web.xml 의 일부로 여러 fragment 가 모여 하나의 web.xml 처럼 사용할 수 있다.

    스프링 부트 버전이 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

     

    반응형
Designed by Tistory.