인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

수환무님의 프로필 이미지
수환무

작성한 질문수

Jenkins를 이용한 CI/CD Pipeline 구축

실습3) Tomcat 서버에 배포하기

실습3) Tomcat 서버에 배포하기 질문 있습니다.

작성

·

1K

·

수정됨

0

Mac PC에서 Tomcat 9점대 설치했습니다.

 

Mac IP : ifconfig에서 en0:의 inet 주소 복붙

 

젠킨스 콘솔에서 http://[MacIP]:8088 or http://[네이버 내 아이피주소]:8088

2가지로 테스트해서 진행했는데, 계속 에러가 나더라구요.

 

1) conf/tomcat-users.xml에서 admin/deployer/tomcat : 롤 수정해서 세팅했구요.

2) webapps/host-manager/META-INF/context.xml : 해당 부분 주석 처리했습니다.

3) webapps/manager/META-INF/context.xml : 해당 부분 주석처리했습니다.

 

 

ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/jenkins_home/workspace/SsuThirdProject/target/hello-world.war]
	at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:176)
	at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81)
	at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167)
	at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136)
	at hudson.FilePath.act(FilePath.java:1198)
	at hudson.FilePath.act(FilePath.java:1181)
	at hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133)
	at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95)
	at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113)
	at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
	at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
	at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767)
	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072)
	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711)
	at hudson.model.Run.execute(Run.java:1918)
	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
	at hudson.model.ResourceController.execute(ResourceController.java:101)
	at hudson.model.Executor.run(Executor.java:442)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
	at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255)
	at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237)
	at java.base/java.net.Socket.connect(Socket.java:609)
	at java.base/java.net.Socket.connect(Socket.java:558)
	at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604)
	at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:277)
	at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:376)
	at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:397)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015)
	at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567)
	at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882)
	at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895)
	at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161)
	... 19 more
java.net.ConnectException: Connection refused (Connection refused)
	at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255)
	at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237)
	at java.base/java.net.Socket.connect(Socket.java:609)
	at java.base/java.net.Socket.connect(Socket.java:558)
	at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604)
	at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:277)
	at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:376)
	at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:397)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015)
	at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567)
	at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882)
	at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895)
	at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161)
	at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81)
	at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167)
	at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136)
	at hudson.FilePath.act(FilePath.java:1198)
	at hudson.FilePath.act(FilePath.java:1181)
	at hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133)
	at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95)
	at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113)
	at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
	at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
	at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767)
	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072)
	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711)
	at hudson.model.Run.execute(Run.java:1918)
	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
	at hudson.model.ResourceController.execute(ResourceController.java:101)
	at hudson.model.Executor.run(Executor.java:442)
Build step 'Deploy war/ear to a container' marked build as failure
Finished: FAILURE

 

 

답변 2

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다

오류의 내용을 보니, 젠킨스에서 설치하신 Tomcat 서버로 통신이 되지 않는 것 같습니다.

(http://[MacIP]:8088 or http://[네이버 내 아이피주소]:8088)

우선 오류 관련하여 확인해 보실 수 있는 내용은 ,

1) MacOS에서 직접 설치하셨는지, Docker로 실행 중이신지?

2) 톰캣의 정상 작동 유무 확인. Mac의 웹브라우저에서 직접 Tomcat에서 접속 가능한지?

3) 톰캣이 정상 실행 중이면 WAR 파일을 배포하기 위한 설정(말씀하신 1,2,3번의 설정) 확인

위 내용을 확인하셨을 때도 오류의 원인을 찾기가 어려유시면, 위 질문 3가지에 대한 답변 및 정보를 추가로 공유해 주시면 저희쪽에서도 다시한번 확인해 보도록 하겠습니다.

감사합니다.

저도 현재 같은 오류가 발생을 하고 있는데요 해결책을 못찾겠습니다 MacOS에서 직접 설치하고 Docker로 실행중이며 톰캣 정상 작동 확인했고 Mac에서 직접 접속도 해봤는데 이상 없습니다 War 파일 배포를 위한 설정도 다 했는데 같은 에러가 발생 합니다

role 설정도 정상적으로 했습니다

이거 방금 해결했는데 MacOS 쓰시는 분들 brew로 opt 파일에 다운로드하고 톰캣설정하면 에러 납니다 문서 혹은 Desktop에 Tomcat설치하고 설정변경하고 톰캣 서버 켠 후에 작동하면 에러 안납니다

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

정보 공유 감사드립니다. 저희도 windows와 macos에 tomcat을 설치 시 자동 설치 버전 말고 zip파일과 같은 압축 파일을 해제해서 사용했었는데, 말씀하신 사항과 같은 문제가 있었는지는 몰랐습니다. 저희도 재현 가능한지 다시한번 확인해 보도록 하겠습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.
사용하신 젠킨스와 톰캣 간 연결에서 “Connection refused” 오류가 발생했네요. 이는 젠킨스가 톰캣 서버에 연결을 시도했지만, 톰캣 서버가 해당 연결을 거부했음을 나타냅니다. 일반적으로 이는 네트워크 문제, 방화벽 설정, 톰캣 서버 설정, 포트 번호 불일치 또는 톰캣 서버가 실행되지 않고 있을 때 발생할 수 있습니다.

젠킨스 플러그인을 사용하여 톰캣에 WAR 파일을 배포하는 과정에서 문제해결을 위해 다음 사항들을 확인해보시길 바랍니다:

  1. 톰캣 서버가 정상적으로 실행 중인지 확인해보세요. 톰캣 서비스가 시작됐는지, 8088 포트가 올바르게 열려있는지 체크하실 필요가 있습니다.

  2. 방화벽 설정을 확인해 보세요. Mac의 방화벽이나 네트워크 설정에서 8088 포트로의 접근을 허용하고 있는지 확인해 주세요.

  3. 톰캣의 server.xml 설정 파일에서 Connector의 포트 번호가 젠킨스가 배포하려고 시도하는 포트 번호와 일치하는지 확인하세요. 이 포트는 <Connector port="8088" protocol="HTTP/1.1" ... />와 같이 설정됩니다.

  4. conf/tomcat-users.xml에서의 사용자, 롤, 매니저 등의 권한 설정이 정확히 되었는지와 context.xml에서의 주석 처리 부분이 올바르게 적용되었는지 재검토해보세요.

만약 이러한 설정들이 모두 정상적으로 작동하는 것으로 확인되었음에도 여전히 문제가 발생한다면, 추가 로그 정보와 함께 톰캣의 설정에 대해 더 자세히 진단이 필요할 수 있습니다. 필요한 경우 톰캣의 로그 파일을 확인하여 더 구체적인 에러 메시지를 참고하실 수 있습니다.

참고로 말씀드리면 제공된 정보에는 젠킨스와 톰캣 간의 연동에 관한 구체적인 가이드나 설정 방법은 없어, 제가 드린 답변은 일반적인 톰캣 연동 문제 해결 방안에 기반하고 있음을 알려드립니다.

수환무님의 프로필 이미지
수환무

작성한 질문수

질문하기