wake-up-neo.com

Was bedeutet "URI hat eine Berechtigungskomponente"?

Ich versuche, ein Java-Webprojekt auf NetBeans 6.8 zu erstellen, erhalte jedoch die folgende Fehlermeldung:

Das Modul wurde nicht bereitgestellt.

Es zeigt auf meine build-impl.xml-Datei, Zeile 577:

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

Das Fehlerprotokoll von GlassFish v3 besagt:

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.

Was bedeutet "URI hat eine Berechtigungskomponente" bedeutet?

39
Kirby

Die Lösung bestand einfach darin, dass der URI fehlerhaft war (da sich der Standort meines Projekts über einem "\\" UNC-Pfad befand). Dieses Problem wurde behoben, als ich einen lokalen Arbeitsbereich verwendete. 

31
Kirby

Eine Behörde ist ein Teil einer URI. Ihr Fehler deutet darauf hin, dass keine erwartet wurde. Der Autoritätsabschnitt ist unten dargestellt. Dies ist der sogenannte Website-Teil der URL.

Ab RFC3986 auf URIs

Das folgende Beispiel zeigt einen URI und seine Bestandteile:

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

Es gibt also zwei Formate, eines mit einer Autorität und eines nicht. In Bezug auf Schrägstriche: 

"Wenn keine Autorität vorhanden ist, kann der Pfad nicht mit zwei Schrägstrichen beginnen
Zeichen ("//")."

Quelle: http://www.rfc-base.org/txt/rfc-3986.txt (Suche nach Text 'behörde ist nicht vorhanden, der Pfad kann nicht mit zwei Schrägstrichen' beginnen)

23
S Meaden

Wechseln Sie zur GlassFish-Registerkarte, damit Sie bessere Informationen erhalten. Netbeans gibt diesen generischen Fehler aus, Glassfish gibt Ihnen jedoch die Details. Wenn ich das bekomme, ist das normalerweise ein Tippfehler in einer meiner JSP- oder XML-Dateien ...

2
Brian Knoblauch

Ich hatte das gleiche Problem (NetBeans 6.9.1) und das Update ist so einfach :)

Mir wurde klar, dass NetBeans keinen META-INF-Ordner erstellt hat und daher kein context.xml gefunden wurde. Daher erstelle ich den META-INF-Ordner unter dem Hauptprojektordner und erstelle die Datei context.xml mit folgendem Inhalt.

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

Und es läuft :)

1
shereifhawary

Ich fand heraus, dass die URL der Anwendung mit einem Modul in Sun GlassFish kollidierte. In der Datei Sun-web.xml habe ich die <context-root>/servlets-samples </ context-root> umbenannt.

Es funktioniert jetzt.

0
MostafaEweda

Bei der Entwicklung der E-Commerce-Site von Affable Bean stand ich vor ähnlichen Problemen. Ich habe einen Fehler erhalten: 

Das Modul wurde nicht bereitgestellt.

Ich habe die Sun-resources.xml-Datei überprüft und die folgenden Anweisungen gefunden, die zu dem Fehler führten.

<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>

Dann habe ich die folgenden Aussagen geändert, was einfach ist und funktioniert. Ich konnte die Datei erfolgreich ausführen.

<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
Zakir Sajib

Nachdem Sie ein Skelettprojekt namens "jsf-blank" ausprobiert hatten, wurde dieses Problem nicht mit xhtml-Dateien gezeigt. Ich kam zu dem Schluss, dass bei meinem Projekt ein unbekanntes Problem vorlag. Meine Lösung war zwar nicht zu elegant, sparte jedoch Zeit. Ich habe den Code und andere Dateien, die ich bereits entwickelt hatte, gesichert, das Projekt gelöscht und das Projekt von Grund auf neu erstellt. Bisher habe ich die meisten Dateien wieder hinzugefügt und es sieht ziemlich gut aus. 

0
Mike GH