0

Vaadin プロジェクトにレスポンシブ アドオンを使用しています。ウィジェットに準拠し、Eclipse でプロジェクトを実行できます。私が使用しているバージョンは Vaadin 7.1.9 と Eclipse Juno です。

次に、war ファイルにエクスポートして Jetty 8 と Jetty 9 にデプロイしようとすると、それぞれ次のエラーが発生します。

Jetty 8 では、元に戻ります。jetty を起動できますが、ブラウザーからアクセスしようとすると、次のように戻ります。

      Widgetset does not contain implementation for com.vaadin.addon.responsive.Responsive. 
      Check its component connector's @Connect mapping, widgetsets GWT module description file and re-compile your widgetset. 
      In case you have downloaded a vaadin add-on package, you might want to refer to add-on instructions.

Jetty 9 では、次のように戻ってきます。

    java.lang.IllegalStateException: Multiple servlets map to path: /*
            at org.eclipse.jetty.servlet.ServletHandler.updateMappings(ServletHandle
    r.java:1383)
            at org.eclipse.jetty.servlet.ServletHandler.setServletMappings(ServletHa
    ndler.java:1480)
            at org.eclipse.jetty.servlet.ServletHandler.addServletMapping(ServletHan
    dler.java:916)
            at org.eclipse.jetty.annotations.WebServletAnnotation.apply(WebServletAn

注: Jetty 8 と Jetty 9 の両方で正常に実行された別の war ファイルがあります。また、私のプロジェクトはそのウィジェットセットがなくても動作します。

Jetty 8 で、ウィジェットを再コンパイルしようとしましたが、同じエラーが返されました。

ここに私の web.xml ファイルがあります:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <display-name>Demo</display-name>
        <context-param>
            <description>Vaadin production mode</description>
            <param-name>productionMode</param-name>
            <param-value>false</param-value>
        </context-param>
        <servlet>
            <servlet-name>Myrmnui Application</servlet-name>
            <servlet-class>com.demo.main.DemoResponsiveAppServlet</servlet-class>
            <init-param>
                <description>Vaadin UI class</description>
                <param-name>UI</param-name>
                <param-value>com.demo.main.MainUI</param-value>
            </init-param>
            <init-param>
                <description>
                Application widgetset</description>
                <param-name>widgetset</param-name>
                <param-value>com.demo.main.widgetset.DemoWidgetset</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>Application</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>Application</servlet-name>
            <url-pattern>/VAADIN/*</url-pattern>
        </servlet-mapping>
    </web-app>

war ファイルをビルドしてウィジェットと一緒にデプロイする方法を教えてください。eclipse を使用して war ファイルにエクスポートしました。ウィジェット ファイルが存在することを確認するために、war ファイルを解凍すると、それらが存在します。これらのファイルのファイル サイズはゼロではありません。

前もって感謝します。

4

1 に答える 1

0

エラー ...

`java.lang.IllegalStateException: Multiple servlets map to path: /*` 

... 複数のサーブレットがすべて同じパス仕様にマッピングされている、無効な WAR デプロイメントを指しているためです。これは、サーブレット API では許可されていません。

それらの1つがフィルターになる可能性はありますか?

または、いくつかのライブラリが@WebServlet(value={"/*"})あなたのエントリと競合するエントリをさらに持ち込んでいるということですか?

名前付きロガーに対してDEBUGロギングをセットアップした場合(またはFINESTを使用した場合) は、何が起こっているのかについてのわずかな詳細を見ることができます。java.util.loggingorg.eclipse.jetty.servlet.ServletHandler

ただし、エラー メッセージは改善できる可能性があるため、改善するためにバグが報告されています: https://bugs.eclipse.org/424284

于 2013-12-17T23:56:19.607 に答える