Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

(시리즈 글이 8개 있습니다.)
개발 환경 구성: 371. Azure Web App 확장 예제 - Simple WebSite Extension
; https://www.sysnet.pe.kr/2/0/11505

개발 환경 구성: 379. Azure Web App 확장 예제 제작
; https://www.sysnet.pe.kr/2/0/11540

개발 환경 구성: 380. Azure Web App 확장 배포 방법
; https://www.sysnet.pe.kr/2/0/11541

개발 환경 구성: 408. C# - REST API를 이용해 Azure Kudu 서비스 이용 - 파일 처리
; https://www.sysnet.pe.kr/2/0/11730

개발 환경 구성: 409. C# - REST API를 이용해 Azure Kudu 서비스 이용 - 웹 앱 확장 처리
; https://www.sysnet.pe.kr/2/0/11731

개발 환경 구성: 578. Azure - Java Web App Service를 위한 Site Extension 제작 방법
; https://www.sysnet.pe.kr/2/0/12711

개발 환경 구성: 579. Azure - 리눅스 호스팅의 Site Extension 제작 방법
; https://www.sysnet.pe.kr/2/0/12712

개발 환경 구성: 605. Azure App Service - Kudu SSH 환경에서 FTP를 이용한 파일 전송
; https://www.sysnet.pe.kr/2/0/12855




Azure - Java Web App Service를 위한 Site Extension 제작 방법

Java를 대상으로 해도 역시 방법은 닷넷의 것과 유사합니다.

Azure Web App 확장 예제 제작
; https://www.sysnet.pe.kr/2/0/11540

그런데, 자알못이라 Extension용의 웹 사이트를 Java로 만들 수가 없군요. ^^; 어차피 .NET Core도 web.config의 AspNetCoreModule을 이용해 w3wp의 reverse proxy와 연동하는 식이므로,

사용자 정의 웹 서버(EXE)를 IIS에서 호스팅하는 방법 - HttpPlatformHandler (Reverse Proxy)
; https://www.sysnet.pe.kr/2/0/11434

저 방식을 따르면 될 것입니다. 하지만 닷넷을 할 줄 안다면, Java의 초기 로딩 속도를 고려했을 때 그냥 .NET Core로 만들어 배포하는 것이 더 좋은 선택입니다.




일단, Site Extension의 웹 사이트 영역은 .NET Core로도 만들 수 있으므로 넘어가고, 이제 남은 것은 Tomcat 등의 호스팅 환경에 원하는 값을 넘겨야 하는 상황이 있다면 어떤 식으로 처리하냐는 것입니다.

사실 이 부분도 .NET Web App에서 했던 것과 다르지 않습니다. 가령, Tomcat catalina의 경우 JAVA_OPTS를 환경 변수로 전달받아 처리하게 되는데요.

// catalina.bat (catalina.sh)

...[생략]...
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
...[생략]...

만약 Web App 확장에서 특정 값을 저 환경 변수에 전달하고 싶다면 applicationHost.xdt 파일로 처리할 수 있습니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <system.webServer>
        <runtime xdt:Transform="InsertIfMissing" >
            <environmentVariables xdt:Transform="InsertIfMissing">
                
                <add name="JAVA_OPTS" value="-Dmy.config=%home%\SiteExtensions\MyAppExtension\conf\test.conf" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing"/>
            
            </environmentVariables>
        </runtime>
    </system.webServer>

    <system.applicationHost>
        <sites>
            <site name="%XDT_SCMSITENAME%" xdt:Locator="Match(name)">
                <application path="/MyAppExtension" xdt:Locator="Match(path)" xdt:Transform="Remove" />
                <application path="/MyAppExtension" applicationPool="%XDT_APPPOOLNAME%" xdt:Transform="Insert">
                    <virtualDirectory path="/" physicalPath="%XDT_EXTENSIONPATH%" />
                </application>
            </site>
        </sites>
    </system.applicationHost>
</configuration>

또는, Azure Portal에서 해당 Web App Service의 Configuration에서 "JAVA_OPTS" 환경 변수를 전달해도 무방합니다. 결국, 제목은 "Java Web App Service"라고 되어 있지만, 사실상 기존 "Azure Web App 확장 예제 제작" 글에 썼던 내용의 답습에 불과합니다. ^^

참고로, 위의 applicationHost.xdt 파일 내용을 보면 xdt:Transform의 조건을 InsertIfMissing으로 했는데요. 엄밀히 이 조건이라면 Azure Portal의 Configuration에서 동일한 환경 변수(위의 예에서는 JAVA_OPTS)를 전달하면 설정이 안 되어야 하지만, 실제로 해보면 설정이 잘 됩니다. 두 개의 설정을 같은 급으로 보는 건지... ^^; 옵션의 차이가 애매하군요.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 10/28/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 181  182  183  184  185  186  187  188  [189]  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
227정성태4/13/200617381Team Foundation Server: 2. TFS 빌드 오류 유형 - MSBUILD: warning : Specified cast is not valid
226정성태4/13/200615361Team Foundation Server: 1. TFS 오류 유형 - TF50608: Unable to retrieve information for security object
225정성태10/17/200614906.NET Framework: 67. VS.NET 2005 도구 상자에 있는 Workflow Activity 항목의 아이콘 변경
223정성태4/13/200626177.NET Framework: 66. Microsoft .NET Framework 2.0 Configuration 수동 설치파일 다운로드1
224정성태4/13/200619736    답변글 .NET Framework: 66.1. "Microsoft .NET Framework 2.0 Configuration" MSI 설치 파일 버전파일 다운로드1
222정성태4/13/200618739.NET Framework: 65. VS.NET 2005: 파일 기반 웹 프로젝트의 "Virtual Path" 제거
220정성태4/13/200616471.NET Framework: 64. ClickOnce - 배포 시 오류 : "Error: An unexpected error occurred -- The parameter is incorrect."
219정성태4/13/200631283.NET Framework: 63. ClickOnce - 최초 실행 시 보안 경고창 없애는 방법 [1]
216정성태4/13/200618337스크립트: 8. 3월 1일 ActiveX Patch 적용 후, JS 로 수정한 임베딩 컨트롤이 여전히 비활성화 되는 문제 [2]
215정성태4/13/200619682.NET Framework: 62. ASP.NET 웹 컨트롤 렌더링 가로채기
214정성태4/13/200619020.NET Framework: 61. DateTime - DateTime = 사이의 "Month" 수 계산 [2]
213정성태4/13/200621280.NET Framework: 60. localhost 이외의 컴퓨터에서 asmx 테스트 페이지 호출 [1]
218정성태4/13/200619645    답변글 .NET Framework: 60.1. asmx 테스트 페이지를 보여주고 싶지 않을 때
211정성태4/13/200617520VS.NET IDE: 38. VS.NET 2005 - "Export Template" 메뉴
210정성태4/13/200616989.NET Framework: 59. EXE 참조 가능 - VS.NET 2005 [2]
209정성태4/13/200616483스크립트: 7. 4월 12일 ActiveX 패치 문제를 해결할 수 있는 가장 간단한 방법 [6]파일 다운로드1
208정성태10/21/200616213Windows: 1. 성태도 ^^ Vista 설치 해봤습니다.
212정성태10/20/200615756    답변글 Windows: 1.1. Vista 에서 WinFX 런타임 구동
207정성태4/13/200624774VC++: 23. VC++ RGS 파일에 사용자 정의 파라미터 추가
205정성태4/13/200621809VS.NET IDE: 37. devenv.exe를 이용한 Command Line 컴파일 [1]
204정성태5/8/200617021웹: 2. Server Unavailable - Server Application Unavailable
203정성태4/13/200615894웹: 1. IIS 설정 옵션: Verify(Check) that file exists
202정성태4/13/200615586VS.NET IDE: 36. Automatically synchronize with an Internet time server
201정성태4/13/200618643기타: 12. XMLHTTP Failure and SUS Admin
200정성태4/13/200618028.NET Framework: 58. 웹 서비스 메서드 호출 오류 유형 - text/html; charset=xxx, but expected 'text/xml'
199정성태4/13/200619375스크립트: 6. XHTML or HTML 4.01 표준 준수
... 181  182  183  184  185  186  187  188  [189]  190  191  192  193  194  195  ...