【问题标题】:What does 'URI has an authority component' mean?“URI 具有权限组件”是什么意思?
【发布时间】:2010-03-02 19:53:21
【问题描述】:

我正在尝试在 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 有权限组件”是什么意思

【问题讨论】:

  • 你的意思是用“j2ee”标记这个吗?
  • 我查找了“URI 语法授权组件”,这看起来是一个很好的参考:ietf.org/rfc/rfc2396.txt...
  • 您认为这与我的 netbeans 工作区位于未连接的路径上有关吗?

标签: java netbeans glassfish


【解决方案1】:

权限是 URI 的一部分。您的错误表明它没有期待一个。权限部分如下图所示,也就是所谓的url的网站部分。

来自URIs上的RFC3986:

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

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

所以有两种格式,一种有权限,一种没有。关于斜线:

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

来源:https://tools.ietf.org/rfc/rfc3986.txt(搜索文本'权限不存在,路径不能以两个斜线开头')

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你能把服务器日志中的完整堆栈跟踪发送给我吗?看来这里需要修复代码……或者更好的错误消息。
    • 告诉我把它寄到哪里?还是在评论中发布?
    • 不幸的是,这并没有为我解决任何问题。一切都已经在我的本地机器上运行了。
    【解决方案3】:

    转到 GlassFish 输出选项卡,它会为您提供更好的信息。 Netbeans 为您提供了一般错误,但 Glassfish 为您提供了详细信息。当我得到这个时,这通常是我的 JSP 或 XML 文件之一中的错字...

    【讨论】:

    • 我在上面发布了 glassfish 错误。我已经仔细检查了我的拼写错误和语法。还是不确定。
    【解决方案4】:

    我遇到了同样的问题(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"/>
    

    它运行了:)

    【讨论】:

      【解决方案5】:

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

      它现在可以工作了。

      【讨论】:

        【解决方案6】:

        我在开发 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>
        

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            猜你喜欢
            • 2015-09-07
            • 2015-12-30
            • 2013-10-26
            • 2019-01-12
            • 1970-01-01
            • 2022-07-07
            • 2014-02-03
            • 1970-01-01
            • 2013-10-10
            相关资源
            最近更新 更多