Любое использование для бесконфигурированного Java-сервера? - PullRequest
2 голосов
/ 30 января 2010

Я люблю Java. Это великолепно. На самом деле, я думаю, что Java-код просто сексуален! Но есть несколько вещей, которые я ненавижу в написании веб-приложений на Java:

  1. Так много конфигурационных файлов. Я еще не нашел сервер / контейнер / framework / и т.д., который позволил бы мне не создавать web.xml. И фреймворки только увеличивают эту сложность.

  2. Мне нравится, как работает PHP. Вы помещаете файлы в каталог и можете сразу же просматривать их. Почему Java не может сделать это? Java обладает прекрасными способностями отражения, чтобы справиться с этим. Так почему я не могу поместить пару файлов .class в каталог, а затем сразу же просмотреть их? (Я знаю, что Tomcat может быть развернут из каталога, но это приводит к ....)

  3. И как в PHP, почему я должен перезагружать сервер каждый раз, когда я хочу повторно развернуть приложение? (Glassfish может выполнять горячее развертывание, но мне все еще нужно упаковать его в файл .war)

Итак, мой вопрос: есть ли какое-либо использование или уже существующее решение для сервера Java; что позволяет вам помещать простые POJO в каталог и сразу же просматривать их? По сути, я хочу, чтобы все, что есть у PHP, только на Java. Есть мысли?

Ответы [ 4 ]

3 голосов
/ 30 января 2010

Grails может удовлетворить некоторые ваши потребности. Это одобряет соглашение по конфигурации (как RoR). Однако я думаю, что проблема с горячим развертыванием не так хороша, как хотелось бы.

Если ваша основная задача - написание web.xml s и т.п., вы всегда можете встроить веб-контейнер (скажем, Jetty) в свое приложение и настроить его программно. Но (я подозреваю) это, вероятно, не так, как вы думаете.

2 голосов
/ 30 января 2010

1 Так много конфигурационных файлов. Я еще не нашел сервер / контейнер / framework / и т.д., который позволил бы мне не создавать web.xml. И фреймворки только увеличивают эту сложность.

Поскольку новые аннотации Java EE 6 , нет больше не нужно web.xml. Дайте ему посмотреть . Поскольку Java EE 6 является относительно новым (выпущен 10 декабря 2009 г.), существующие платформы еще предстоит обновить, чтобы соответствовать этому.

2 Мне нравится, как работает PHP. Вы помещаете файлы в каталог и можете сразу же просматривать их. Почему Java не может сделать это? Java обладает прекрасными способностями отражения, чтобы справиться с этим. Так почему я не могу поместить пару файлов .class в каталог, а затем сразу же просмотреть их? (Я знаю, что Tomcat может быть развернут из каталога, но это приводит к ....)

Вам необходимо включить hotdeploy / autodeploy для рассматриваемого сервера. Вам нужно будет более подробно рассказать о «но это приводит к ...», чтобы это можно было исправить.

3 И как PHP, почему я должен перезагружать сервер каждый раз, когда я хочу повторно развернуть приложение? (Glassfish может выполнять горячее развертывание, но мне все еще нужно упаковать его в файл .war)

Вам нужна IDE с хорошим плагином для сервера. В Eclipse с плагином Glassfish у меня действительно не было необходимости перезагружать сервер для любого сбоя.

1 голос
/ 30 января 2010

Из более традиционных веб-фреймворков Java Wicket требует минимального количества внешних настроек. Фактически, вот полный контент web.xml для запуска веб-приложения на основе Wicket в режиме развертывания ( взято отсюда и слегка изменено ):

<web-app>
    <display-name>Wicket Examples</display-name>
    <filter>
        <filter-name>HelloWorldApplication</filter-name>
        <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
        <init-param>
          <param-name>applicationClassName</param-name>
          <param-value>org.apache.wicket.examples.helloworld.HelloWorldApplication</param-value>
        </init-param>
        <init-param>
          <param-name>configuration</param-name>
          <param-value>deployment</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>HelloWorldApplication</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

Если вам нравится Spring, вы на самом деле можете сделать так, чтобы ваше приложение Wicket Spring было известно о контенте приложения Spring, что означает, что ваша конфигурация web.xml будет иметь только конфиги для прослушивателя Spring, которые составляют всего пару строк.

0 голосов
/ 30 января 2010

Когда вы разрабатываете внутри IDE в режиме отладки, таком как Eclipse, простое сохранение файла перекомпилирует его и обновит определение внутри JVM (если возможно), давая вам то, что вы хотите.

Я полагаю, что Ресин может оперативно обновлять изменения в классах / но в последнее время не пробовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...