“URI有权限组件”是什么意思?

时间:2010-03-02 19:53:21

标签: java netbeans glassfish

我正在尝试在NetBeans 6.8上构建Java Web项目,但是我收到以下错误:

  

尚未部署该模块。

它指向我的build-impl.xml文件,第577行:

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

GlassFish v3错误日志说:

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.

“URI有权限组件”是什么意思?

7 个答案:

答案 0 :(得分:31)

解决方案只是URI格式错误(因为我的项目位置超过了“\\”UNC路径)。当我使用本地工作区时,此问题已得到修复。

答案 1 :(得分:24)

权限是URI的一部分。你的错误表明它没有期待。权限部分如下所示,它就是网址的网站部分。

来自URIs上的RFC3986:

  

以下是示例URI及其组成部分:

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

所以有两种格式,一种是权威,另一种不是。关于斜杠:

  

“当权限不存在时,路径不能以两个斜杠开头   characters(“//”)。“

来源:http://www.rfc-base.org/txt/rfc-3986.txt(搜索文字“权限不存在,路径不能以两个斜杠开头”)

答案 2 :(得分:2)

翻转到GlassFish输出标签,它会为您提供更好的信息。 Netbeans为您提供了一般错误,但Glassfish为您提供了详细信息。当我得到它时,它通常是我的一个JSP或XML文件中的拼写错误......

答案 3 :(得分:1)

我遇到了同样的问题(NetBeans 6.9.1)并且修复非常简单:)

我意识到NetBeans没有创建META-INF文件夹,因此找不到context.xml,因此我在主项目文件夹下创建了META-INF文件夹并使用以下内容创建文件context.xml内容。

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

它运行:)

答案 4 :(得分:0)

我发现应用程序的URL与Sun GlassFish中的模块冲突。 因此,在文件sun-web.xml中,我重命名了&lt; context-root&gt; / servlets-samples&lt; / context-root&gt;。

现在正在运作。

答案 5 :(得分:0)

在开展Affable Bean电子商务网站开发时,我也遇到了类似的问题。我收到了一个错误:

  

尚未部署模块。

我检查了sun-resources.xml文件并找到了导致错误的以下语句。

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

然后我将语句改为以下简单且有效的语句。我能够成功运行该文件。

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

答案 6 :(得分:0)

尝试一个名为“jsf-blank”的骨架项目后,没有用xhtml文件证明这个问题;我的结论是我的项目中存在一个未知问题。我的解决方案可能不太优雅,但它节省了时间。我备份了我已经开发的代码和其他文件,删除了项目,然后重新开始 - 重新创建项目。到目前为止,我已经添加了大部分文件,看起来还不错。