Я создал приложение hello-world RAP, следуя обучающей программе eclipse.У меня нет проблем с запуском его в eclipse.
Теперь я хочу упаковать его в файл .war вместе с maven и развернуть на сервере Jetty.Это тот момент, когда я уже не уверен, что это правильный подход.Мой файл .war содержит все плагины RAP, равноденствия и maven, web.xml и config.ini.Я строю его с Tycho, но я открыт для других решений.
config.ini:
#Product Runtime Configuration File
osgi.bundles=RapHello/BasicEntryPoint@start,\
org.eclipse.core.commands@start,\
org.eclipse.core.jobs@start,\
org.eclipse.equinox.common@start,\
org.eclipse.equinox.console@start,\
org.eclipse.equinox.ds@start,\
org.eclipse.equinox.http.registry@start,\
org.eclipse.equinox.servletbridge.extensionbundle,\
org.eclipse.equinox.http.servlet@start,\
org.eclipse.equinox.http.servletbridge@start,\
org.eclipse.equinox.registry@start,\
org.eclipse.equinox.servletbridge@start,\
org.eclipse.equinox.util@start,\
org.eclipse.osgi.services@start,\
org.eclipse.rap.jface@start,\
org.eclipse.rap.rwt@start,\
org.eclipse.rap.rwt.osgi@start,\
raphello.BasicEntryPoint@start
osgi.bundles.defaultStartLevel=4
web.xml (скопировано из другого образца .war):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app id="WebApp">
<servlet id="bridge">
<servlet-name>equinoxbridgeservlet</servlet-name>
<display-name>Equinox Bridge Servlet</display-name>
<description>Equinox Bridge Servlet</description>
<servlet-class>org.eclipse.equinox.servletbridge.BridgeServlet</servlet-class>
<!-- Framework Controls could be useful for testing purpose, but
we disable it per default -->
<init-param>
<param-name>enableFrameworkControls</param-name>
<param-value>false</param-value>
</init-param>
<!-- Enable multi-language support for the extension registry -->
<!-- the OSGi console is useful for trouble shooting but will fill up your
appserver log quickly, so deactivate on production use. Uncomment
the -console parameter to enabled OSGi console access. -->
<init-param>
<param-name>commandline</param-name>
<param-value>-registryMultiLanguage <!-- -console --></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>equinoxbridgeservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
При развертывании файла на моем сервере Jetty я не получаю ошибок, и кажется, что файл был поднят, но все, что я получаю, это
HTTP ERROR 404
Problem accessing /hellorap. Reason:
ProxyServlet: /hellorap
Я думаю, что перепробовал все возможныепути.До сих пор я читал, что путь должен быть именем файла моего .war, но это не сработает.
журнал запуска Jetty:
INFO::main: Logging initialized @276ms to org.eclipse.jetty.util.log.StdErrLog
INFO:oejs.Server:main: jetty-9.4.10.v20180503; built: 2018-05-03T15:56:21.710Z; git: daa59876e6f384329b122929e70a80934569428c; jvm 1.8.0_181-b13
INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
INFO:oejs.session:main: No SessionScavenger set, using defaults
INFO:oejs.session:main: node0 Scavenging every 600000ms
INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@561b6512{/,file:///C:/Users/USR/AppData/Local/Temp/jetty-0.0.0.0-8081-raphello.war-_-any-511053963228532950.dir/webapp/,AVAILABLE}{webapps/raphello.war}
INFO:oejs.AbstractConnector:main: Started ServerConnector@2898ac89{HTTP/1.1,[http/1.1]}{0.0.0.0:8081}
INFO:oejs.Server:main: Started @4477ms
Итак, вопрос такой:Что я делаю неправильно?Это даже правильный подход?
Этот ответ , похоже, не работает, поэтому моя ошибка, вероятно, на более ранней стадии.