2013-05-13 3 views
0

Я пытаюсь выяснить, как реализовать пакет веб-приложений. Для этого я создал небольшой образец, следуя инструкциям в уроке this. War-файл можно развернуть и запустить, но я не могу назвать какой-либо URL-адрес.

Структура военного файла;

+ META-INF
                MANIFEST.MF
+ WEB-INF
                классы/
                                fancyfoods/веб/SayHello.class
                                web.xml
index.html


Я попытался вызвать
локальный: 8080/
локальный: 8080/fancyfoods.web/index.html
локальный: 8080/fancyfoods.web/SayHello
, но я всегда получаю "Ошибка HTTP 404"



Я понятия не имею, что случилось. Нужно ли мне больше пакетов для запуска веб-приложения?Веб-приложение OSGi не работает

Лучший Regard





CUT

Здравствуйте еще раз,

спасибо за ре plies и жаль путаницу с моим неуместным ответом (я новичок в Stack Overflow). Я начал новый WAB-пример с нуля, и он все еще не работает. Чтобы проверить, работают ли службы http в целом, я впервые реализовал другой пакет (не WAB), содержащий сервлет и OSGi-компонент, который регистрирует сервлет и статические ресурсы. И это работает! Я могу вызвать html и сервлет.

Теперь вернемся к моей проблеме с моей WAB. Поскольку в примере, отличном от WAB, я предполагаю, что файл войны не в порядке.Я потратил больше времени, чтобы предоставить вам необходимую информацию (надеюсь, так).

Структура моей войны-файла:

¦---index.html 
¦ 
+---META-INF 
¦-------MANIFEST.MF 
¦ 
+---WEB-INF 
    ¦ web.xml 
    ¦ 
    +---classes 
     +---org 
      +---osgi 
       +---helloworld 
        +---wab 
          HelloWorldWab.class 
          HelloWorldWabActivator.class 
          HelloWorldWabComponent.class 
          HelloWorldWabServlet.class 



MANIFEST.MF:

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.8.3 
Created-By: 1.7.0_09-b05 (Oracle Corporation) 
Bundle-ManifestVersion: 2 
Bundle-Name: org.osgi.helloworld.wab 
Bundle-SymbolicName: org.osgi.helloworld.wab 
Bundle-Version: 1.0.0.qualifier 
Bundle-RequiredExecutionEnvironment: JavaSE-1.7 
Bundle-Activator: org.osgi.helloworld.wab.HelloWorldWabActivator 
Bundle-ClassPath: WEB-INF/classes 
Import-Package: javax.servlet, javax.servlet.http, org.osgi.framework, 
    org.osgi.service.component, org.osgi.service.http, org.osgi.util.tra 
cker 
Export-Package: org.osgi.helloworld.wab 
Web-ContextPath: /helloworld 
Webapp-Context: /helloworld 



Когда я начинаю & остановить сверток методы HelloWorldWabActivator вызывается как аспект.

Файл web.xml:

<web-app> 
    <!-- welcome file mapping --> 
    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 

    <servlet> 
     <servlet-name>HelloWorldWabServlet</servlet-name> 
     <servlet-class>org.osgi.helloworld.wab.HelloWorldWabServletXXX</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>HelloWorldWabServlet</servlet-name> 
     <url-pattern>/HelloWorldWabServlet</url-pattern> 
    </servlet-mapping> 
</web-app> 



OSGi сервер:

START LEVEL 1 
    ID|State  |Level|Name 
    0|Active  | 0|System Bundle (4.2.1) 
    1|Active  | 1|Apache Commons FileUpload (1.2.2.v20111214-1400) 
    2|Active  | 1|Apache Commons IO (1.4.0.v20081110-1000) 
    3|Active  | 1|Apache Felix Bundle Repository (1.6.6) 
    4|Active  | 1|Apache Felix Configuration Admin Service (1.6.0) 
    5|Active  | 1|Apache Felix EventAdmin (1.3.2) 
    6|Active  | 1|Apache Felix File Install (3.2.6) 
    7|Active  | 1|Apache Felix Gogo Command (0.12.0) 
    8|Active  | 1|Apache Felix Gogo Runtime (0.10.0) 
    9|Active  | 1|Apache Felix Gogo Shell (0.10.0) 
    10|Active  | 1|Apache Felix Http Api (2.2.0) 
    11|Active  | 1|Apache Felix Http Base (2.2.0) 
    12|Active  | 1|Apache Felix Http Bridge (2.2.0) 
    13|Active  | 1|Apache Felix Http Bundle (2.2.0) 
    14|Active  | 1|Apache Felix Http Jetty (2.2.0) 
    15|Active  | 1|Apache Felix Http Proxy (2.2.0) 
    16|Active  | 1|Apache Felix Http Whiteboard (2.2.0) 
    17|Active  | 1|Apache Felix Log Service (1.0.1) 
    18|Active  | 1|Apache Felix Preferences Service (1.0.4) 
    19|Active  | 1|Apache Felix Declarative Services (1.6.2) 
    20|Active  | 1|Apache Felix Web Management Console (4.0.0) 
    21|Active  | 1|JSON Implementation for Java (1.0.0.v201011060100) 
    22|Active  | 1|org.osgi.helloworld.wab (1.0.0.qualifier) 
    23|Active  | 1|org.osgi.helloworld.servlet (1.0.0.qualifier) 

Спасибо за вашу поддержку

+0

Если вы посмотрите на сервисы, используемые пакетом fancyfoods.web, отображается «org.osgi.service.http.HttpService» как в использовании? –

ответ

0

Есть несколько разных примеров того, как получить веб-приложение, работающее на OSGi-Web Container, доступное в веб-проекте pax, это может помочь вам решить вашу проблему и быстро перейти к OSGi-WARs. Pax-Web Samples О, и убедитесь, что у вас установлен набор WebApp-Context.

+0

Что такое параметр «WebApp-Context»? Никогда не слышал об этом ... –

+0

Спасибо Нейлу за указание, что это не параметр :) –

0

Мне пришлось добавить пакет pax-web-extender-war (и, возможно, pax-url) и зависимости, чтобы получить wabs в военном стиле для работы с web.xml. Чтобы выполнить это в bndTools felix runtime в eclipse, я извлек все jars/bundles из обновленной системы/каталога Apache ServiceMix; импортировал их все в локальный репозиторий bndTools; и добавил все пакеты pax и jetty к моей конфигурации bndTools Run. (Возможно, вам придется отслеживать несколько дополнительных зависимостей).