Как создать военные файлы

Принятый ответ нарушит все функциональные возможности, которые предлагает SoapClient. Как установка правильных заголовков контента, аутентификация и т. Д.

Это было бы лучшим решением проблемы

class MySoapClient extends \SoapClient
{
    private $timeout = 10;

    public function __construct($wsdl, array $options)
    {
        // Defines a timeout in seconds for the connection to the SOAP service.
        // This option does not define a timeout for services with slow responses.
        // To limit the time to wait for calls to finish the default_socket_timeout setting is available.
        if (!isset($options['connection_timeout'])) {
            $options['connection_timeout'] = $this->timeout;
        }

        parent::__construct($wsdl, $options);
    }

    public function setTimeout($timeout)
    {
        $this->timeout = $timeout;
    }

    public function __doRequest($request, $location, $action, $version, $one_way = 0)
    {
        $original = ini_get('default_socket_timeout');
        ini_set('default_socket_timeout', $this->timeout);
        $response = parent::__doRequest($request, $location, $action, $version, $one_way);
        ini_set('default_socket_timeout', $original);

        return $response;
    }

}
94
задан 16 June 2009 в 14:06
поделиться

7 ответов

Вы можете использовать Ant для установки, компиляции, WAR и развертывания решения.

<target name="default" depends="setup,compile,buildwar,deploy"></target>

Затем вы можете выполнить один щелчок в Eclipse для запуска этой цели Ant. Вот примеры каждого из шагов:

Предварительные условия

Мы предполагаем, что ваш код организован следующим образом:

  • $ {basedir} / src : файлы Java, свойства, файлы конфигурации XML
  • $ {basedir} / web : ваши файлы JSP
  • $ {basedir} / web / lib : любые файлы JAR, необходимые во время выполнения
  • $ {basedir} / web / META-INF : Ваш манифест
  • $ {basedir} / web / WEB-INF : Ваши файлы web.xml

Настроить

Определить задачу setup , которая создает каталог распространения и копирует любые артефакты, которые нужно напрямую использовать WARred:

97
ответ дан 24 November 2019 в 06:05
поделиться

Используйте задачу Ant war

4
ответ дан 24 November 2019 в 06:05
поделиться

Если вы не знаете, что делать, и начинаете с нуля, Maven может помочь вам начать работу.

Выполнив следующие шаги, вы можете идеально настроить новый военный проект в eclipse .

  1. Загрузите и установите Maven
  2. Запустите командную строку: mvn archetype: generate
  3. Следуйте подсказкам - выберите простой веб-проект java (18) и подходящее имя.
  4. Когда он закончится, запустите: mvn eclipse: eclipse
  5. Запустите Eclipse. Выберите Файл -> Импорт -> Существующий проект. Выберите каталог, в котором выполнялись задачи mvn.
  6. That ' так что теперь у вас должно быть очень хорошее начало военного проекта в eclipse
  7. . Вы можете создать саму войну, запустив mvn package , или развернуть ее, настроив сервер в eclipse и просто добавив проект на сервер.

Как говорили некоторые другие, обратная сторона использования maven заключается в том, что вы должны использовать соглашения maven. Но я думаю, что если вы только начинаете, изучите условные обозначения, прежде чем создавать свои собственные. Ничто не мешает вам изменить / провести рефакторинг на ваш собственный предпочтительный метод позже.

Надеюсь, это поможет.

Как говорили некоторые другие, обратная сторона использования maven заключается в том, что вы должны использовать соглашения maven. Но я думаю, что если вы только начинаете, изучите условные обозначения, прежде чем создавать свои собственные. Ничто не мешает вам изменить / провести рефакторинг на ваш собственный предпочтительный метод позже.

Надеюсь, это поможет.

Как говорили некоторые другие, обратная сторона использования maven заключается в том, что вы должны использовать соглашения maven. Но я думаю, что если вы только начинаете, изучите условные обозначения, прежде чем создавать свои собственные. Ничто не мешает вам изменить / провести рефакторинг на ваш собственный предпочтительный метод позже.

Надеюсь, это поможет.

12
ответ дан 24 November 2019 в 06:05
поделиться

War-файл - это просто jar-файл с расширением war, но то, что заставляет его работать, - это то, как на самом деле структурировано содержимое.

Учебник J2EE / Java EE может быть началом:

http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents3.html

И спецификация сервлета содержит подробные сведения:

http://java.sun.com /products/servlet/download.html

Если вы создаете новый веб-проект в Eclipse (я имею в виду версию Java EE), структура создается для вас, и вы также можете указать ей, где установлен ваш сервер приложений, и развернет и запустит приложение за вас.

Использование опции «Экспорт-> WAR-файл» позволит вам сохранить военный файл.

14
ответ дан 24 November 2019 в 06:05
поделиться

I've always just selected Export from Eclipse. It builds the war file and includes all necessary files. Providing you created the project as a web project that's all you'll need to do. Eclipse makes it very simple to do.

37
ответ дан 24 November 2019 в 06:05
поделиться

Мы используем Maven (старший брат Ant) для всех наших java-проектов, и у него есть очень изящный плагин WAR. Здесь можно найти учебные материалы и их использование.

Это намного проще, чем Ant, полностью совместим с Eclipse (используйте maven eclipse: eclipse для создания проектов Eclipse) и прост в настройке.

Домашняя страница Maven

Подключаемый модуль Maven WAR

Пример конфигурации:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1-alpha-2</version>
    <configuration>
        <outputDirectory>${project.build.directory}/tmp/</outputDirectory>
        <workDirectory>${project.build.directory}/tmp/war/work</workDirectory>
        <webappDirectory>${project.build.webappDirectory}</webappDirectory>
        <cacheFile>${project.build.directory}/tmp/war/work/webapp-cache.xml</cacheFile>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
            <nonFilteredFileExtension>png</nonFilteredFileExtension>
            <nonFilteredFileExtension>gif</nonFilteredFileExtension>
            <nonFilteredFileExtension>jsp</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
        <webResources>
            <resource>
                <directory>src/main/webapp/</directory>
                <targetPath>WEB-INF</targetPath>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </webResources>
        <warName>Application</warName>
    </configuration>
</plugin>
23
ответ дан 24 November 2019 в 06:05
поделиться

Использовать код сборки ant Я использую это для своего проекта SMS

<property name="WEB-INF" value="${basedir}/WebRoot/WEB-INF" />
<property name="OUT" value="${basedir}/out" />
<property name="WAR_FILE_NAME" value="mywebapplication.war" />
<property name="TEMP" value="${basedir}/temp" />

<target name="help">
    <echo>
        --------------------------------------------------
        compile - Compile
        archive - Generate WAR file
        --------------------------------------------------
    </echo>
</target>

<target name="init">
    <delete dir="${WEB-INF}/classes" />
    <mkdir dir="${WEB-INF}/classes" />
</target>

<target name="compile" depends="init">
    <javac srcdir="${basedir}/src" 
                destdir="${WEB-INF}/classes" 
                classpathref="libs">
    </javac>
</target>

<target name="archive" depends="compile">
    <delete dir="${OUT}" />
    <mkdir dir="${OUT}" />
    <delete dir="${TEMP}" />
    <mkdir dir="${TEMP}" />
    <copy todir="${TEMP}" >
        <fileset dir="${basedir}/WebRoot">
        </fileset>
    </copy>
    <move file="${TEMP}/log4j.properties" 
                    todir="${TEMP}/WEB-INF/classes" />
    <war destfile="${OUT}/${WAR_FILE_NAME}" 
                    basedir="${TEMP}" 
                    compress="true" 
                    webxml="${TEMP}/WEB-INF/web.xml" />
    <delete dir="${TEMP}" />
</target>

<path id="libs">
    <fileset includes="*.jar" dir="${WEB-INF}/lib" />
</path>

3
ответ дан 24 November 2019 в 06:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: