성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Roll A Lisp In C - Reading ; https...
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Azure - 자바(Java)로 만드는 Web App Service - Java SE (Embedded Web Server) 호스팅</h1> <p> 이번 내용은 다음의 글에서 아주 친절하게 설명하고 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Quickstart: Create a Java app on Azure App Service ; <a target='tab' href='https://docs.microsoft.com/en-us/azure/app-service/quickstart-java'>https://docs.microsoft.com/en-us/azure/app-service/quickstart-java</a> </pre> <br /> <hr style='width: 50%' /><br /> <br /> Java 응용 프로그램을 Azure에서 실행하기 위해서는 당연히 자바 런타임이 필요한데요, 다음의 문서를 보면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Azure supported Java Development Kit (JDK) ; <a target='tab' href='https://docs.microsoft.com/en-us/azure/developer/java/fundamentals/java-support-on-azure'>https://docs.microsoft.com/en-us/azure/developer/java/fundamentals/java-support-on-azure</a> </pre> <br /> Azure의 아래와 같은 환경에는 이미 자바 런타임이 설치된다고 합니다.<br /> <br /> <ul> <li>Azure App Service on Windows</li> <li>Azure App Service on Linux</li> <li>Azure Functions</li> <li>Azure Spring Cloud</li> <li>Azure Service Fabric</li> <li>Azure HDInsight</li> <li>Azure Cognitive Search</li> <li>Azure Cloud Shell</li> <li>Azure DevOps</li> </ul> <br /> 따라서 우리가 실습할 "Azure App Service on Windows" 환경은 위에 속하기 때문에 JRE 걱정은 하지 않아도 됩니다.<br /> <br /> 자, 그럼 이제 테스트 용도의 Java Web App이 필요할 텐데요, 이에 대해서도 마이크로소프트 측에서 준비해놨으므로 clone을 한 다음,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > git clone https://github.com/spring-guides/gs-spring-boot </pre> <br /> 하위의 gs-spring-boot/complete 디렉터리로 이동 후,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > cd gs-spring-boot/complete </pre> <br /> 다음의 명령을 실행해 줍니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > mvnw com.microsoft.azure:azure-webapp-maven-plugin:1.16.0:config </pre> <br /> 그럼, 한참 동안의 다운로드를 마치고 다음과 같이 본격적인 Azure 배포를 위한 설정값을 묻습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Java SE Web Apps in subscription Pay-As-You-Go: * 1: <create> 2: testhello (windows, <a target='tab' href='https://azure.microsoft.com/en-us/blog/general-availability-of-tomcat-and-java-se-on-app-service-on-linux/'>java se</a>) Please choose a Java SE Web App [<create>]: </pre> <br /> Azure Portal을 이용해 미리 App Service를 만들어 두었으면 위와 같이 "2"번 이후에 그 항목들이 보일 것입니다. 당연히 여기서는 2번을 선택하고, 다시 묻는 질문에서 "Y"를 선택하면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Subscription Id : f60d6b26-ec5f-4d3b-88c8-a1913e0f542d AppName : testhello ResourceGroup : JavaEnvTest Region : koreacentral PricingTier : D1 OS : Windows Java : Java 8 Web server stack: Java SE Deploy to slot : false Confirm (Y/N) [Y]: </pre> <br /> 관련 설정을 pom.xml 파일에 저장했다는 메시지를 보게 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 05:14 min [INFO] Finished at: 2021-06-17T15:54:45+09:00 [INFO] ------------------------------------------------------------------------ </pre> <br /> 마지막으로 다음의 명령을 내리면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > mvnw package azure-webapp:deploy </pre> <br /> Azure에 배포가 되고, "https://[...].azurewebsites.net/ 경로를 방문하면 정상적으로 실행이 되는 것을 볼 수 있습니다.<br /> <br /> 테스트를 위해 .\gs-spring-boot\complete\src\main\java\com\example\springboot\HelloController.java 파일의 내용을 다음과 같은 정도로 바꿔주셔도 좋겠고. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > package com.example.springboot; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; import java.lang.management.ManagementFactory; import java.net.*; @RestController public class HelloController { @RequestMapping("/") public String index() throws UnknownHostException { return ManagementFactory.getRuntimeMXBean().getName() + " " + InetAddress.getLocalHost(); } } </pre> <br /> 그리고 저렇게 변경한 후에는 default-test로 엮인 단위 테스트가 실패하므로 그걸 알맞게 변경하든지, deploy 명령에 단위 테스트를 생략하라고 지정하든지 선택을 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > mvnw package azure-webapp:deploy <span style='color: blue; font-weight: bold'>-Dmaven.test.skip</span> </pre> <br /> <hr style='width: 50%' /><br /> <br /> 잠시, Azure Portal의 Console로 들어가 d:\home\site\deployments 디렉터리를 보면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > D:\home\site\deployments> <span style='color: blue; font-weight: bold'>dir</span> Volume in drive D is Windows Volume Serial Number is B492-AC54 Directory of D:\home\site\deployments 06/17/2021 07:04 AM <DIR> . 06/17/2021 07:04 AM <DIR> .. 06/17/2021 06:34 AM <DIR> 314d27cdb58444ab9b2070908dc60aa4 06/17/2021 06:56 AM <DIR> 57d2aa209f374e10a3a1876db4ba58cf 06/17/2021 06:29 AM <DIR> 9282168eb34c4051ab2bd0ac7cb03181 06/17/2021 07:04 AM 32 active 06/17/2021 07:04 AM <DIR> c007f41ba334405e960c9f5674717647 06/16/2021 08:07 AM <DIR> c5b8973a692542c5893b41803c8363f0 06/17/2021 06:35 AM <DIR> d4b58bdd689f46bfab53710c7bdd3de3 06/16/2021 08:00 AM <DIR> e9f52a3ecd4448fdbc7ea50023682b57 06/17/2021 07:04 AM 678 latest.json 06/16/2021 08:00 AM 0 pending 06/16/2021 07:33 AM <DIR> tools 3 File(s) 710 bytes 10 Dir(s) 661,450,752 bytes free </pre> <br /> active 파일의 내용에 현재 사용 중인 deployment id를 확인할 수 있고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > D:\home\site\deployments> <span style='color: blue; font-weight: bold'>type active</span> c007f41ba334405e960c9f5674717647 </pre> <br /> c007f41ba334405e960c9f5674717647 디렉터리는 현재 실행 중인 app service의 로그를 담고 있습니다. 그리고 실제 응용 프로그램의 jar 파일은 d:\home\site\wwwroot에 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > D:\home\site\wwwroot> <span style='color: blue; font-weight: bold'>dir</span> Volume in drive D is Windows Volume Serial Number is B492-AC54 Directory of D:\home\site\wwwroot 06/16/2021 07:32 AM <DIR> . 06/16/2021 07:32 AM <DIR> .. 06/17/2021 07:04 AM <span style='color: blue; font-weight: bold'>19,324,652 app.jar</span> 06/16/2021 07:32 AM 3,499 hostingstart.html 2 File(s) 19,328,151 bytes 2 Dir(s) 661,450,752 bytes free </pre> <br /> 19MB 정도의 jar 파일이군요.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 그럼 호스팅 상태를 살펴볼까요? 우선, Kudu - Process Explorer로 살펴보면 다음과 같이 w3wp.exe의 하위 프로세스로 뜨는 것을 확인할 수 있습니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='azure_java_web_app_hosting_1.png' src='/SysWebRes/bbs/azure_java_web_app_hosting_1.png' /><br /> <br /> 위의 Properties 버튼을 누르면 Handles 탭의 정보가 이렇고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > D:\home\site\wwwroot D:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.14393.4169_none_7de0bbf28341b1f2 C:\DWASFiles\Sites\testhello\Temp\hsperfdata_RD00155D4DCD20$\8580 C:\DWASFiles\Sites\testhello\NtTracing\nt-trace.pid8580.log C:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\lib\rt.jar D:\Windows\System32\en-US\kernel32.dll.mui C:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\lib\jfr.jar C:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\lib\ext\legacy8ujsse.jar C:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\lib\ext\openjsse.jar C:\DWASFiles\Sites\testhello\Temp\javaFiles\f83d6704-67db-4d17-9775-fb7523903e83\site\wwwroot\app.jar C:\DWASFiles\Sites\testhello\Temp\javaFiles\f83d6704-67db-4d17-9775-fb7523903e83\site\wwwroot\app.jar D:\Program Files\AppserviceJavaLibs\1.1.0.0\azure.appservice.jar C:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\lib\resources.jar C:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\lib\jsse.jar </pre> <br /> Modules와 Environment Variables는 값이 비어 있습니다. 대신 대상 프로세스의 덤프를 떠서,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Azure Web App Service에 배포된 Java 프로세스의 메모리 및 힙(Heap) 덤프 뜨는 방법 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12685'>https://www.sysnet.pe.kr/2/0/12685</a> </pre> <br /> !peb 명령어로 살펴보면, Modules 목록과,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 7ff608620000 5f1fffef Jul 28 19:37:35 2020 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\java.exe ...[생략]... 5cf10000 4df2bcac Jun 11 09:54:04 2011 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\msvcr100.dll 5c650000 5f1ffbfe Jul 28 19:20:46 2020 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\server\jvm.dll ...[생략]... 7ffa208f0000 5f1fff83 Jul 28 19:35:47 2020 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\verify.dll 7ffa208c0000 5f1fff86 Jul 28 19:35:50 2020 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\java.dll 7ffa1fdd0000 5f1fff89 Jul 28 19:35:53 2020 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\zip.dll ...[생략]... 7ffa1fdc0000 5f1fff8a Jul 28 19:35:54 2020 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\management.dll 7ffa1fda0000 5f1fff8a Jul 28 19:35:54 2020 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\net.dll ...[생략]... 7ffa1fd80000 5f1fff8d Jul 28 19:35:57 2020 D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin\nio.dll </pre> <br /> 환경 변수 정보를 구할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > APP_POOL_CONFIG=C:\DWASFiles\Sites\testhello\Config\applicationhost.config APP_POOL_ID=testhello AZURE_JAVA_APP_PATH=C:\DWASFiles\Sites\testhello\Temp\javaFiles\e89707f7-91a1-4f5c-a211-077794576e5d\site\wwwroot\app.jar MICRONAUT_SERVER_PORT=31896 PAYARAMICRO_PORT=31896 QUARKUS_HTTP_PORT=31896 RATPACK_PORT=31896 SERVER_PORT=31896 SystemDrive=D: ProgramFiles(x86)=D:\Program Files (x86) ProgramW6432=D:\Program Files PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 63 Stepping 2, GenuineIntel THORNTAIL_HTTP_PORT=31896 TMP=D:\local\Temp PROCESSOR_ARCHITECTURE=AMD64 Path=D:\Python27;D:\Program Files (x86)\nodejs;D:\Windows\system32;D:\Windows;D:\Windows\System32\Wbem;D:\Windows\System32\WindowsPowerShell\v1.0\;D:\Program Files\Git\cmd;D:\Program Files\Microsoft Network Monitor 3\;D:\Users\Administrator\AppData\Roaming\npm;D:\Program Files (x86)\nodejs\;D:\Program Files (x86)\Mercurial\;d:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;D:\Program Files (x86)\dotnet;D:\Program Files\dotnet;D:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;;E:\base\x64;E:\base\x86;;D:\Packages\GuestAgent\GuestAgent\LegacyRuntime\x64;D:\Packages\GuestAgent\GuestAgent\LegacyRuntime\x86;;D:\Program Files (x86)\dotnet;D:\Program Files\dotnet;D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64\bin; AZURE_TOMCAT7_CMDLINE=-Dport.http=%HTTP_PLATFORM_PORT% -Djava.util.logging.config.file="D:\Program Files (x86)\apache-tomcat-7.0.94\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dsite.logdir="d:/home/LogFiles/" -Dsite.tempdir="d:\home\site\workdir" -classpath "D:\Program Files (x86)\apache-tomcat-7.0.94\bin\bootstrap.jar;D:\Program Files (x86)\apache-tomcat-7.0.94\bin\tomcat-juli.jar" -Dcatalina.base="D:\Program Files (x86)\apache-tomcat-7.0.94" -Djava.io.tmpdir="d:\home\site\workdir" org.apache.catalina.startup.Bootstrap AZURE_TOMCAT90_HOME=D:\Program Files\apache-tomcat-9.0.37 PROCESSOR_REVISION=3f02 TEMP=D:\local\Temp USERPROFILE=D:\local\UserProfile USERNAME=RD00155D4DCD20$ SystemRoot=D:\Windows AZURE_TOMCAT85_HOME=D:\Program Files\apache-tomcat-8.5.57 AZURE_TOMCAT7_HOME=D:\Program Files (x86)\apache-tomcat-7.0.94 AZURE_JETTY9_CMDLINE=-Djava.net.preferIPv4Stack=true -Djetty.port=%HTTP_PLATFORM_PORT% -Djetty.base="D:\Program Files (x86)\jetty-distribution-9.1.0.v20131115" -Djetty.webapps="d:\home\site\wwwroot\webapps" -jar "D:\Program Files (x86)\jetty-distribution-9.1.0.v20131115\start.jar" etc\jetty-logging.xml CommonProgramFiles=D:\Program Files\Common Files ProgramData=D:\local\ProgramData AZURE_JETTY93_HOME=D:\Program Files (x86)\jetty-distribution-9.3.25.v20180904 COMPUTERNAME=RD00155D4DCD20 ALLUSERSPROFILE=D:\local\ProgramData CommonProgramW6432=D:\Program Files\Common Files AZURE_JETTY9_HOME=D:\Program Files (x86)\jetty-distribution-9.1.0.v20131115 AZURE_TOMCAT90_CMDLINE="-noverify -Djava.net.preferIPv4Stack=true -Dcatalina.instance.name=%WEBSITE_INSTANCE_ID% -Dport.http=%HTTP_PLATFORM_PORT% -Djava.util.logging.config.file=\"D:\Program Files\apache-tomcat-9.0.37\conf\logging.properties\" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dsite.logdir=\"%HOME%\LogFiles\\" -Dsite.tempdir=\"%HOME%\site\workdir\" -classpath \"D:\Program Files\apache-tomcat-9.0.37\bin\bootstrap.jar;D:\Program Files\apache-tomcat-9.0.37\bin\tomcat-juli.jar\" -Dcatalina.base=\"D:\Program Files\apache-tomcat-9.0.37\" -Djava.io.tmpdir=\"%HOME%\site\workdir\" org.apache.catalina.startup.Bootstrap" AZURE_JETTY93_CMDLINE=-Djava.net.preferIPv4Stack=true -Djetty.port=%HTTP_PLATFORM_PORT% -Djetty.base="D:\Program Files (x86)\jetty-distribution-9.3.25.v20180904" -Djetty.webapps="d:\home\site\wwwroot\webapps" -jar "D:\Program Files (x86)\jetty-distribution-9.3.25.v20180904\start.jar" etc\jetty-logging.xml CommonProgramFiles(x86)=D:\Program Files (x86)\Common Files windir=D:\Windows NUMBER_OF_PROCESSORS=4 OS=Windows_NT ProgramFiles=D:\Program Files ComSpec=D:\Windows\system32\cmd.exe PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW AZURE_TOMCAT8_CMDLINE=-Dport.http=%HTTP_PLATFORM_PORT% -Djava.util.logging.config.file="D:\Program Files (x86)\apache-tomcat-8.0.53\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dsite.logdir="d:/home/LogFiles/" -Dsite.tempdir="d:\home\site\workdir" -classpath "D:\Program Files (x86)\apache-tomcat-8.0.53\bin\bootstrap.jar;D:\Program Files (x86)\apache-tomcat-8.0.53\bin\tomcat-juli.jar" -Dcatalina.base="D:\Program Files (x86)\apache-tomcat-8.0.53" -Djava.io.tmpdir="d:\home\site\workdir" org.apache.catalina.startup.Bootstrap PSModulePath=D:\Program Files\WindowsPowerShell\Modules;D:\Windows\system32\WindowsPowerShell\v1.0\Modules;D:\Program Files\WindowsPowerShell\Modules\;D:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ResourceManager\AzureResourceManager\;D:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\;D:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\Storage\;D:\Program Files\Microsoft Message Analyzer\PowerShell\ APPDATA=D:\local\AppData USERDOMAIN=WORKGROUP PROCESSOR_LEVEL=6 LOCALAPPDATA=D:\local\LocalAppData AZURE_TOMCAT85_CMDLINE="-noverify -Djava.net.preferIPv4Stack=true -Dcatalina.instance.name=%WEBSITE_INSTANCE_ID% -Dport.http=%HTTP_PLATFORM_PORT% -Djava.util.logging.config.file=\"D:\Program Files\apache-tomcat-8.5.57\conf\logging.properties\" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dsite.logdir=\"%HOME%\LogFiles\\" -Dsite.tempdir=\"%HOME%\site\workdir\" -classpath \"D:\Program Files\apache-tomcat-8.5.57\bin\bootstrap.jar;D:\Program Files\apache-tomcat-8.5.57\bin\tomcat-juli.jar\" -Dcatalina.base=\"D:\Program Files\apache-tomcat-8.5.57\" -Djava.io.tmpdir=\"%HOME%\site\workdir\" org.apache.catalina.startup.Bootstrap" DOTNET_HOSTING_OPTIMIZATION_CACHE=D:\DotNetCache AZURE_TOMCAT8_HOME=D:\Program Files (x86)\apache-tomcat-8.0.53 PUBLIC=D:\Users\Public ScmType=None APPSETTING_ScmType=None WEBSITE_SITE_NAME=testhello APPSETTING_WEBSITE_SITE_NAME=testhello WEBSITE_AUTH_ENABLED=False APPSETTING_WEBSITE_AUTH_ENABLED=False REGION_NAME=Korea Central HOME=D:\home HOME_EXPANDED=C:\DWASFiles\Sites\testhello\VirtualDirectory0 LOCAL_EXPANDED=C:\DWASFiles\Sites\testhello windows_tracing_flags= windows_tracing_logfile= WEBSITE_INSTANCE_ID=5d8c3f...[생략]...7f94 WEBSITE_HTTPLOGGING_ENABLED=0 WEBSITE_SCM_ALWAYS_ON_ENABLED=0 WEBSITE_ISOLATION=pico WEBSITE_OS=windows WEBSITE_DEPLOYMENT_ID=testhello WEBSITE_COMPUTE_MODE=Shared WEBSITE_SKU=Shared WEBSITE_ELASTIC_SCALING_ENABLED=0 WEBSITE_SCM_SEPARATE_STATUS=1 WEBSITE_IIS_SITE_NAME=testhello WEBSITE_APPSERVICEAPPLOGS_TRACE_ENABLED=true WEBSITE_CHANGEANALYSISSCAN_ENABLED=1 MicrosoftInstrumentationEngine_LatestPath=D:\Program Files (x86)\SiteExtensions\InstrumentationEngine\1.0.39 JAVA_HOME=D:\Program Files\Java\zulu8.48.0.53-jre8.0.265-win_x64 SITE_BITNESS=x86 WEBSITE_AUTH_ENCRYPTION_KEY=BA39D5...[생략]...F0A28D269FB WEBSITE_AUTH_SIGNING_KEY=089700...[생략]...A0DFF72F7 WEBSITE_PROACTIVE_AUTOHEAL_ENABLED=True WEBSITE_PROACTIVE_STACKTRACING_ENABLED=True WEBSITE_PROACTIVE_CRASHMONITORING_ENABLED=True WEBSITE_CRASHMONITORING_USE_DEBUGDIAG=True WEBSITE_DYNAMIC_CACHE=0 WEBSITE_FRAMEWORK_JIT=1 WEBSITE_HOME_STAMPNAME=waws-prod-se1-001 WEBSITE_CURRENT_STAMPNAME=waws-prod-se1-001 WEBSOCKET_CONCURRENT_REQUEST_LIMIT=35 WEBSITE_VOLUME_TYPE=PrimaryStorageVolume WEBSITE_OWNER_NAME=f60d6b2...[생략]...alwebspace WEBSITE_RESOURCE_GROUP=javaenvtest WEBSITE_CONTAINER_READY=1 WEBSITE_PHYSICAL_MEMORY_MB=1024 WEBSITE_JAVA_MAX_HEAP_MB=716 WEBSITE_STACK=JAVA WEBSITE_PLATFORM_VERSION=94.0.7.89 REMOTEDEBUGGINGPORT= REMOTEDEBUGGINGBITVERSION=vx86 WEBSITE_LOCALCACHE_ENABLED=False WEBSITE_HOSTNAME=testhello.azurewebsites.net WEBSITE_RELAYS= WEBSITE_REWRITE_TABLE= HTTP_PLATFORM_PORT=31896 </pre> <br /> 그나저나 <a target='tab' href='https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html'>jcmd</a>로 확인하는 경우,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > D:\home> <span style='color: blue; font-weight: bold'>jcmd</span> 21748 sun.tools.jcmd.JCmd </pre> <br /> Web App 프로세스가 출력되지 않습니다. (저 출력 값은 jcmd.exe 스스로의 pid입니다.) 어쩔 수 없이 Kudu의 Process Explorer 화면을 통해 알아낸 pid 값을 넣어줘야 다음과 같은 출력을 확인할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > D:\home> <span style='color: blue; font-weight: bold'>jcmd 8580 VM.version</span> 8580: OpenJDK 64-Bit Server VM version 25.265-b11 JDK 8.0_265 D:\home> <span style='color: blue; font-weight: bold'>jcmd 8580 VM.command_line</span> 8580: VM Arguments: jvm_args: -Xverify:none -Djava.net.preferIPv4Stack=true -Dserver.port=12160 java_command: org.springframework.boot.loader.JarLauncher java_class_path (initial): C:\DWASFiles\Sites\testhello\Temp\javaFiles\8de0e99e-8935-49d3-85f3-27163a87f206\site\wwwroot\app.jar;D:\Program Files\AppserviceJavaLibs\1.1.0.0\azure.appservice.jar; Launcher Type: SUN_STANDARD D:\home> <span style='color: blue; font-weight: bold'>jcmd 8580 VM.system_properties</span> 8580: #Thu Jun 24 04:41:29 GMT 2021 java.vendor=Azul Systems, Inc. sun.java.launcher=SUN_STANDARD catalina.base=D\:\\local\\Temp\\tomcat.12160.5008804048013896033 sun.management.compiler=HotSpot 64-Bit Tiered Compilers catalina.useNaming=false os.name=Windows Server 2016 sun.boot.class.path=D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\resources.jar;D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\rt.jar;D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\sunrsasign.jar;D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\jsse.jar;D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\jce.jar;D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\charsets.jar;D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\jfr.jar;D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\classes sun.desktop=windows java.vm.specification.vendor=Oracle Corporation java.runtime.version=1.8.0_265-b11 user.name=RD00155D4D9669$ user.language=en sun.boot.library.path=D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\bin CONSOLE_LOG_CHARSET=windows-1252 PID=8580 java.version=1.8.0_265 user.timezone=GMT java.net.preferIPv4Stack=true sun.arch.data.model=64 java.endorsed.dirs=D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\endorsed sun.cpu.isalist=amd64 sun.jnu.encoding=Cp1252 file.encoding.pkg=sun.io file.separator=\\ java.specification.name=Java Platform API Specification java.class.version=52.0 user.country=US java.home=D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64 java.vm.info=mixed mode os.version=10.0 path.separator=; java.vm.version=25.265-b11 user.variant= java.protocol.handler.pkgs=org.springframework.boot.loader java.awt.printerjob=sun.awt.windows.WPrinterJob sun.io.unicode.encoding=UnicodeLittle awt.toolkit=sun.awt.windows.WToolkit user.script= user.home=D\:\\Users\\testhello java.specification.vendor=Oracle Corporation java.library.path=D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\bin;D\:\\Windows\\Sun\\Java\\bin;D\:\\Windows\\system32;D\:\\Windows;D\:\\Python27;D\:\\Program Files (x86)\\nodejs;D\:\\Windows\\system32;D\:\\Windows;D\:\\Windows\\System32\\Wbem;D\:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;D\:\\Program Files\\Git\\cmd;D\:\\Program Files\\Microsoft Network Monitor 3\\;D\:\\Users\\Administrator\\AppData\\Roaming\\npm;D\:\\Program Files (x86)\\nodejs\\;D\:\\Program Files (x86)\\Mercurial\\;d\:\\Program Files (x86)\\Microsoft ASP.NET\\ASP.NET Web Pages\\v1.0\\;D\:\\Program Files (x86)\\dotnet;D\:\\Program Files\\dotnet;D\:\\Windows\\system32\\config\\systemprofile\\AppData\\Local\\Microsoft\\WindowsApps;;E\:\\base\\x64;E\:\\base\\x86;;D\:\\Packages\\GuestAgent\\GuestAgent\\LegacyRuntime\\x64;D\:\\Packages\\GuestAgent\\GuestAgent\\LegacyRuntime\\x86;;D\:\\Program Files (x86)\\dotnet;D\:\\Program Files\\dotnet;D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\bin;;. java.vendor.url=http\://www.azulsystems.com/ spring.beaninfo.ignore=true java.vm.vendor=Azul Systems, Inc. java.runtime.name=OpenJDK Runtime Environment sun.java.command=org.springframework.boot.loader.JarLauncher java.class.path=C\:\\DWASFiles\\Sites\\testhello\\Temp\\javaFiles\\8de0e99e-8935-49d3-85f3-27163a87f206\\site\\wwwroot\\app.jar;D\:\\Program Files\\AppserviceJavaLibs\\1.1.0.0\\azure.appservice.jar; java.vm.specification.name=Java Virtual Machine Specification java.vm.specification.version=1.8 catalina.home=D\:\\local\\Temp\\tomcat.12160.5008804048013896033 sun.cpu.endian=little sun.os.patch.level= java.awt.headless=true java.io.tmpdir=D\:\\local\\Temp\\ FILE_LOG_CHARSET=windows-1252 java.vendor.url.bug=http\://www.azulsystems.com/support/ server.port=12160 os.arch=amd64 java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.ext.dirs=D\:\\Program Files\\Java\\zulu8.48.0.53-jre8.0.265-win_x64\\lib\\ext;D\:\\Windows\\Sun\\Java\\lib\\ext user.dir=D\:\\home\\site\\wwwroot line.separator=\r\n java.vm.name=OpenJDK 64-Bit Server VM jdk.vendor.version=Zulu 8.48.0.53-win64 file.encoding=Cp1252 java.specification.version=1.8 </pre> <hr style='width: 50%' /><br /> <br /> 이상하군요, 테스트를 위해 동일한 Web App을 Tomcat 호스팅으로 바꿨다가 다시 Java SE(Embedded Web Server)로 돌려 Spring Boot 예제 배포를 위해 mvnw...deploy 명령어를 실행했더니 다음과 같은 오류가 발생합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > [ERROR] Failed to execute goal com.microsoft.azure:azure-webapp-maven-plugin:1.16.0:deploy (default-cli) on project spring-boot: Can not update the operation system for existing app service -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException </pre> <br /> 해결 방법을 알 수 없었는데, 결국 해당 Web App Service를 지운 후 다시 생성하는 것으로 우회했습니다.<br /> <br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1846
(왼쪽의 숫자를 입력해야 합니다.)