Domanda

Sto cercando di distribuire un'applicazione molto semplice e la mia prima JSF (seguendo a tutorial davvero ottimo di BalusC) sul server locale Glassfish.Ho completato tutti i passaggi per creare l'applicazione.E quando ho provato a distribuire l'applicazione sul server glassfish, non è riuscita con il seguente messaggio di eccezione: -

    cannot Deploy Playground
    Deployment Error for module: Playground: Exception while deploying the app : 
    java.lang.IllegalArgumentException: Invalid URL Pattern: [xhtml]

Qualcuno potrebbe spiegarmi dov'è il guasto e come posso correggerlo?

È stato utile?

Soluzione

Questo non è un modello URL valido.È possibile organizzare la mappatura come mappatura del prefisso o mappatura dell'estensione (dal file Specifica JSF 2.0):

Mappatura del prefisso:

<servlet-mapping>
  <servlet-name> faces-servlet-name </servlet-name>
  <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

Mappatura delle estensioni:

<servlet-mapping>
  <servlet-name> faces-servlet-name </servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

Altri suggerimenti

Tuo <url-pattern> deve avere un'estensione corrispondente (inizia con a *) o corrispondenza del prefisso (iniziando con /) incluso, non solo xhtml.

Ecco come ho fatto il mio.

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

Le regole per le mappature servlet sono trattate nel file Specifiche servlet 3.0:

Specifica delle mappature

Nel descrittore di distribuzione dell'applicazione Web, la seguente sintassi viene utilizzata per definire le mappature:

  • Una stringa che inizia con a / carattere e termina con a /*il suffisso viene utilizzato per la mappatura del percorso.
  • Una stringa che inizia con a *. Il prefisso viene utilizzato come mappatura di estensione.
  • La stringa vuota ("") è un modello URL speciale che mappa esattamente alla radice di contesto dell'applicazione, cioè richieste del modulo http://host:port/<contextroot>/.In questo caso sono le informazioni sul percorso / e il percorso del servlet e il percorso di contesto sono string vuoti ("").
  • Una stringa contenente solo il file / Il carattere indica il servlet "predefinito" dell'applicazione.In questo caso il percorso servlet è la richiesta Uri meno il percorso di contesto e le informazioni sul percorso sono nulle.
  • Tutte le altre stringhe vengono utilizzate solo per corrispondenze esatte.

Quando riscontri questo errore, controlla il file web.xml e le eventuali annotazioni di mappatura (WebServlet, Filtro Web, eccetera.)

È possibile trovare consigli per la mappatura delle servlet JSF nel file Specifica JSF 2.0.

Quando si utilizza la mappatura di estensione, si consiglia la seguente mappatura, ma non è necessaria:

<servlet-mapping>
<servlet-name> faces-servlet-name </servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top