java - URISyntaxException 在 Weblogic 中部署 WAR 文件时出现非法字符

标签 java deployment

我们在同一个 weblogic 域上多次部署同一个 Web 应用程序,用于多个测试环境。

尽管我们使用不同的服务器和端口,但我们发现使用不同的名称可以方便地轻松识别已部署的应用程序。到目前为止,我们已将环境名称放在应用程序名称中的括号之间,如下所示:

Applic[DEV]
Applic[SIT1]
Applic[SIT2]

直到今天,它仍然发挥着神奇的作用。但现在我们在重新部署应用程序时遇到了问题。我不确定我们可以改变什么来导致这个问题。

我们得到的异常是:

java.net.URISyntaxException: Illegal character in path at index 65: file:/APPLICdev1/applicDomain/servers/SIT2/tmp/_WL_user/ApplicWeb[Sit2]/gp8nae/war/WEB-INF/lib/applicCommons-RELEASE.jar

根据 W3C ( here ),有问题的字符“[”应该是有效字符,保留但有效。我们通过删除括号解决了这个问题,但我很想了解这个问题的原因。

谢谢

最佳答案

RFC3986 中所述、[] 是保留字符,仅在 IPv6 地址表示中有效:

3.2.2. Host
...
A host identified by an Internet Protocol literal address, version 6 [RFC3513] or later, is distinguished by enclosing the IP literal within square brackets ("[" and "]"). This is the only place where square bracket characters are allowed in the URI syntax.

所以,在其他地方他们应该被转义。

但是,它没有解释 Weblogic 关于文件名的行为。 也许这是由于使用 new URI(...) 而不是 new File(...).toURI() 创建 file:/ URI。

关于java - URISyntaxException 在 Weblogic 中部署 WAR 文件时出现非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660797/

相关文章:

c# - 仅在发布时构建失败

node.js - 我的 socket.io 应用程序的服务器未在 Heroku 上启动

java - JButtons 没有出现在 GridBagLayout 中

java - 保存域对象基本审计数据的简便方法?

java - 如何查找和替换子字符串?

django - 结构部署问题

ASP.NET 部署 : How to avoid losing session state when updating code?

.net - 创建包含 .Net Framework 3.5 SP1 的安装项目

java - ajc 通过命令行无法识别 .ajspectj 语法

Java:何时不使用 `private`