2010-03-02 7 views
31

Sto tentando di costruire un progetto web Java su NetBeans 6.8, ma ottengo il seguente errore:Che cosa significa "URI ha un componente di autorizzazione"?

The module has not been deployed.

Essa ricorda al mio build-impl.xml di file, la linea 577:

<nbdeploy clientUrlPart="${client.urlPart}" debugmode="false" forceRedeploy="${forceRedeploy}"/> 

Il GlassFish v3 log di errore dice:

SEVERE: Exception in command execution : java.lang.IllegalArgumentException: URI has an authority component 
java.lang.IllegalArgumentException: URI has an authority component 
    at java.io.File.<init>(File.java:368)`..., etc. 

Cosa "URI ha una componente autorità" significa?

+0

Forse cercavi per codificare questo con 'J2EE'? –

+0

Ho cercato "componente di sintassi dell'URI" e questo mi sembra un buon riferimento: http: //www.ietf.org/rfc/rfc2396.txt ... – vkraemer

+0

pensi che abbia qualcosa a che fare con il fatto che il mio l'area di lavoro netbeans si trova su un percorso non connesso? – Kirby

risposta

25

La soluzione era semplicemente che l'URI era malformato (perché la posizione del mio progetto era su un percorso "\\" UNC). Questo problema è stato risolto quando ho utilizzato uno spazio di lavoro locale.

+1

Puoi inviarmi lo stacktrace completo dal registro del server? Sembra che ci debba essere una correzione del codice qui ... o un messaggio di errore migliore. – vkraemer

+0

fammi sapere dove spedirlo? o pubblicarlo in un commento? – Kirby

+2

Sfortunatamente, questo non ha risolto nulla per me. Tutto sta già funzionando con la mia macchina locale. – Webnet

2

Capovolgi la scheda di uscita GlassFish per ottenere informazioni migliori. Netbeans ti dà quell'errore generico, ma Glassfish ti fornisce i dettagli. Quando ottengo questo è di solito un refuso in uno dei miei file JSP o XML ...

+0

ho postato l'errore glassfish sopra. ho ricontrollato i miei errori di battitura e la sintassi. ancora non sono sicuro. – Kirby

1

Ho avuto lo stesso problema (NetBeans 6.9.1) e la correzione è così semplice :)

mi sono reso conto NetBeans non ha creato una cartella META-INF e quindi non context.xml è stato trovato, così ho creare il Cartella META-INF sotto la cartella del progetto principale e creare il file context.xml con il seguente contenuto.

<?xml version="1.0" encoding="UTF-8"?> 
    <Context antiJARLocking="true" path="/home"/> 

E funziona :)

0

ho scoperto che l'URL dell'applicazione in conflitto con un modulo in the Sun GlassFish. Quindi, nel file sun-web.xml ho rinominato il < context-root>/servlet-samples </context-root>.

Ora funziona.

0

Ho anche affrontato un problema simile mentre lavoravo allo sviluppo del sito di e-commerce Affable Bean. Ho ricevuto un errore:

Module has not been deployed.

ho controllato il file sun-resources.xml ed ha trovato le seguenti affermazioni che hanno provocato l'errore.

<resources> 
    <jdbc-resource enabled="true" 
        jndi-name="jdbc/affablebean" 
        object-type="user" 
        pool-name="AffableBeanPool"> 
    </jdbc-resource> 

    <jdbc-connection-pool allow-non-component-callers="false" 
          associate-with-thread="false" 
          connection-creation-retry-attempts="0" 
          connection-creation-retry-interval-in-seconds="10" 
          connection-leak-reclaim="false" 
          connection-leak-timeout-in-seconds="0" 
          connection-validation-method="auto-commit" 
          datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" 
          fail-all-connections="false" 
          idle-timeout-in-seconds="300" 
          is-connection-validation-required="false" 
          is-isolation-level-guaranteed="true" 
          lazy-connection-association="false" 
          lazy-connection-enlistment="false" 
          match-connections="false" 
          max-connection-usage-count="0" 
          max-pool-size="32" 
          max-wait-time-in-millis="60000" 
          name="AffableBeanPool" 
          non-transactional-connections="false" 
          pool-resize-quantity="2" 
          res-type="javax.sql.ConnectionPoolDataSource" 
          statement-timeout-in-seconds="-1" 
          steady-pool-size="8" 
          validate-atmost-once-period-in-seconds="0" 
          wrap-jdbc-objects="false"> 

     <description>Connects to the affablebean database</description> 
     <property name="URL" value="jdbc:mysql://localhost:3306/affablebean"/> 
     <property name="User" value="root"/> 
     <property name="Password" value="nbuser"/> 
    </jdbc-connection-pool> 
</resources> 

Quindi ho modificato le istruzioni di seguito che è semplice e funziona. Sono stato in grado di eseguire il file con successo.

<resources> 
    <jdbc-resource enabled="true" jndi-name="jdbc/affablebean" object-type="user" pool-name="AffablebeanPool"> 
     <description/> 
    </jdbc-resource> 
    <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="AffablebeanPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.ConnectionPoolDataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false"> 
     <property name="URL" value="jdbc:mysql://localhost:3306/AffableBean"/> 
     <property name="User" value="root"/> 
     <property name="Password" value="nbuser"/> 
    </jdbc-connection-pool> 
</resources> 
0

Dopo aver provato un progetto skeleton chiamato "jsf-blank", che non ha dimostrato questo problema con i file xhtml; Ho concluso che c'era un problema sconosciuto nel mio progetto. La mia soluzione potrebbe non essere stata troppo elegante, ma ha risparmiato tempo. Ho eseguito il backup del codice e degli altri file che avevo già sviluppato, ho eliminato il progetto e ho ricominciato: ho ricreato il progetto. Finora, ho aggiunto la maggior parte dei file e sembra piuttosto buona.

17

Un'autorità è una parte di un URI. Il tuo errore suggerisce che non se lo aspettava. La sezione autorità è mostrata di seguito, è ciò che è noto come la parte del sito web dell'URL.

Da RFC3986 su URIs:

The following is an example URI and its component parts:

 foo://example.com:8042/over/there?name=ferret#nose 
    \_/ \______________/\_________/ \_________/ \__/ 
     |   |   |   |  | 
    scheme  authority  path  query fragment 
     | _____________________|__ 
    /\/      \ 
    urn:example:animal:ferret:nose 

Quindi ci sono due formati, uno con un'autorità e non uno. Per quanto riguarda le barre:

"When authority is not present, the path cannot begin with two slash
characters ("//")."

Fonte: http://www.rfc-base.org/txt/rfc-3986.txt (Ricerca per il testo 'autorità non è presente, il percorso non può iniziare con due barra')