Поделиться через


Windows Azure, приложение на Java "Hello World" с использованием JDK 1.6 и Glassfish 3. (ru-RU)

——- ** Цикл "Windows Azure & Java":  Windows Azure, приложение на Java "Hello World" с использованием JDK 1.6 и Tomcat 7.  Windows Azure, приложение на Java "Hello World" с использованием JDK 1.6 и Glassfish 3 Windows Azure, приложение на Java. Service Runtime Library Вопросы отладки Java-приложений.  Дополнительные возможности. Remote Desktop, Session Affinity.  Windows Azure & Java. Основы хранилища. Блобы. Доступ из локального приложения.  Windows Azure & Java. Основы хранилища. Очереди. Доступ из локального приложения. Windows Azure & Java. Что такое Service Bus и как её использовать из Java-приложения. Часть 1. Windows Azure & Java. Что такое Service Bus и как её использовать из Java-приложения. Часть 2. Топики.  ——-**  

Двигаемся дальше в необходимости разрабатывать приложения на Java для Windows Azure с использованием Java-related технологий и серверов. Поскольку основной алгоритм настройки очень похож на описываемый в предыдущей статье, ограничусь только отличиями в некоторых моментах.Так, из предыдущей статьи необходимо выполнить все настройки вплоть до создания облачного проекта.

После этого необходимо открыть файл ServiceDefinition.cscfg и добавить информацию по точкам входа и импортированию модуля диагностики.

http://hpcru.files.wordpress.com/2012/03/image_thumb45.png?w=244&h=126

Ваш файл ServiceDefinition.cscfg после редактирования должен выглядеть как код ниже.

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<ServiceDefinition xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" name="WindowsAzureProject">
  <WorkerRole name="WorkerRole1" vmsize="Small">
    <Startup>
      <!-- Sample startup task calling startup.cmd from the role's approot folder -->
      <Task commandLine="util/.start.cmd startup.cmd" executionContext="elevated" taskType="simple"/>
    </Startup>
    <Runtime executionContext="elevated">
        <EntryPoint>
              <!-- Sample entry point calling run.cmd from the role's approot folder -->
            <ProgramEntryPoint commandLine="run.cmd" setReadyOnProcessStart="true"/>
        </EntryPoint>
    </Runtime>
    <Imports>
        <Import moduleName="Diagnostics" />
    </Imports>
    <Endpoints>
      <InputEndpoint localPort="8080" name="HttpListener1" port="8080" protocol="tcp"/>
      <InputEndpoint localPort="8181" name="HttpListener2" port="8181" protocol="tcp"/>
      <InputEndpoint localPort="4848" name="HttpListener3" port="4848" protocol="tcp"/>
      <InputEndpoint localPort="8686" name="JMXConnectorPort" port="8686" protocol="tcp"/>
      <InputEndpoint localPort="9009" name="RemoteDebuggingPort" port="9009" protocol="tcp"/>
    </Endpoints>
  </WorkerRole>
</ServiceDefinition>

Далее нам можно воспользоваться уже проверенным способом и скопировать из папки samples в корне содержимое файла startupGlassFishOSE3.txt в файл startup.cmd и заменить соответствующие “болванки” на необходимые значения. Ваш startup.cmd должен выглядеть как код ниже.

:: *** Sample startup script containing the steps for starting GlassFish Server OSE 3 and deploying a WAR file.
:: *** (Last tested with GlassFish Server OSE 3.1.1)

:: To use the sample, follow these steps:
:: 1) Copy all this content into approot/startup.cmd in the role folder, close this file, and edit the copy
:: 2) Place a JDK distribution as jdk.zip under approot
:: 3) Place a GlassFish Server OSE 3.x distribution as glassfish3.zip under approot in your project
::    3.1) If you want to download the server into Azure directly from a URL instead, then
::         uncomment the next line and modify the URL as appropriate:
:: cscript /NoLogo "util\download.vbs" "http://download.java.net/glassfish/3.1.1/release/glassfish-3.1.1.zip" "glassfish3.zip"

:: 4) Update SERVER_DIR_NAME below as appropriate:
::    (IMPORTANT: There must be no trailing nor leading whitespace around the setting)

SET SERVER_DIR_NAME=glassfish3

:: 5) To deploy your own WAR file, place it in approot and update WAR_NAME below:
::    (IMPORTANT: There must be no trailing nor leading whitespace around the setting)

SET WAR_NAME=HelloWorld.war

:: **************************************************************
:: *** Do not make changes below unless you know what you're doing.
rd "\%ROLENAME%"
mklink /D "\%ROLENAME%" "%ROLEROOT%\approot"
cd /d "\%ROLENAME%"
cscript /NoLogo util\unzip.vbs jdk.zip "%CD%"
cscript /NoLogo util\unzip.vbs glassfish3.zip "%CD%"
set JAVA_HOME=\%ROLENAME%\jdk
set PATH=%PATH%;%JAVA_HOME%\bin
cd "%SERVER_DIR_NAME%"
cmd /c bin\asadmin.bat start-domain
cmd /c bin\asadmin.bat deploy "\%ROLENAME%\%WAR_NAME%"

@ECHO OFF
if %ERRORLEVEL%==0 exit %ERRORLEVEL%
choice /d y /t 5 /c Y /N /M "*** Windows Azure startup failed - exiting..."
exit %ERRORLEVEL%

Обратите внимание на н��которые новые директивы, в том числе cmd /c bin\asadmin.bat start-domain и deploy. Это стандартные директивы для запуска сервера GlassFish и они должны вам быть хорошо знакомы, если вы уже использовали ранее GlassFish.

На этом конфигурация под GlassFish закончена и вы можете воспользоваться дальнейшими инструкциями по развертыванию из предыдущей статьи.