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?
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.
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)
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 ...
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 :)
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.
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>
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.