Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何纠正错误';java.util.zip.ZipException:打开zip文件时出错';使用门户在WAS上调用web服务_Java_Web Services_Zip_Websphere Portal - Fatal编程技术网

如何纠正错误';java.util.zip.ZipException:打开zip文件时出错';使用门户在WAS上调用web服务

如何纠正错误';java.util.zip.ZipException:打开zip文件时出错';使用门户在WAS上调用web服务,java,web-services,zip,websphere-portal,Java,Web Services,Zip,Websphere Portal,我已经为Portal7.0开发了一个web服务,并将应用程序部署到一个环境中。应用程序的安装和启动是正常的,但是,当调用web服务时,SystemOut.log中会出现以下错误数百次。然后,服务器开始报告有关“打开的文件太多”的其他错误,直到应用程序停止或服务重新启动 [7/29/14 8:45:56:647 EST] 00000057 WSClassFinder E WSWS7058E: A JAXBContext could not be created correctly becaus

我已经为Portal7.0开发了一个web服务,并将应用程序部署到一个环境中。应用程序的安装和启动是正常的,但是,当调用web服务时,SystemOut.log中会出现以下错误数百次。然后,服务器开始报告有关“打开的文件太多”的其他错误,直到应用程序停止或服务重新启动

[7/29/14 8:45:56:647 EST] 00000057 WSClassFinder E   WSWS7058E: A JAXBContext could not be created correctly because of the following error: java.util.zip.ZipException: error in opening zip file
[7/29/14 8:45:56:647 EST] 00000057 WSClassFinder E   WSWS7058E: A JAXBContext could not be created correctly because of the following error: java.util.zip.ZipException: error in opening zip file
奇怪的是,我们有一个基本相同的开发和生产环境(相同的Linux OS版本+WAS和Portal 7.0.0.23)。最初,web服务在开发人员中运行良好,但在生产环境中使用它的尝试失败了(外观不好)。重新启动dev后,问题也开始出现(至少现在是一致的)

我还尝试构建最基本的web服务应用程序(它只返回一个静态字符串),甚至在调用时也以完全相同的结果失败。我有一个单独的开发环境,在那里我做的大部分工作与上面的工作是分开的,但是使用相同的应用程序版本。这个一直很好用。这表明这是配置或服务器问题

我在com.ibm.ws.classloader和java.util.zip上使用了跟踪,但没有任何非常有用的信息。类装入器似乎没有明确指出问题的根源,java.util.zip也没有在跟踪中报告任何内容

不幸的是,我被困在哪里寻找选项来纠正这个问题。这可能是操作系统文件权限问题,但不清楚这可能在哪里。计划对该环境进行升级,但因为它以前在这个构建版本(在开发服务器上)上工作,所以我真的希望在升级之前找到根本原因


任何建议或建议都将不胜感激。

我的理解是,这个例外通常来自本机代码ZIP库;e、 g.当您的代码试图打开ZIP文件时。(至少,谷歌向我展示的例子就是如此。)

这可能是一个文件(或目录)权限问题,但我认为应该抛出一个
IOException
(或一个子类)。在我看来,代码试图打开的ZIP(或JAR/WAR/EAR/etc)文件很可能已损坏/被截断,或者(可能)是JVM不理解的某个变体,或者。。。它根本不是一个ZIP文件


假设您知道文件的路径名,请尝试使用系统的(非Java)zip文件实用程序读取它。这应该会给你一些线索。

关于开放文件限制的建议一直都是正确的,我们只是找错了地方。“默认”ulimit设置是有效的,但这些设置不是通过init.d脚本启动WebSpherePortal服务器时应用的设置。本文最后一节指出了我们遇到的问题:

我们使用本文中的详细信息验证了这一点:


所需要做的只是更新init.d脚本,将行“ulimit-nxxxxx”包含在我们所需的限制中。我们已经使用WASService脚本来生成init.d脚本,并且认为它不需要进一步修改。也许我们在使用处理此问题的WASService脚本时遗漏了一点。

如果您能向我们展示一个stacktrace,那么解决这个问题就会容易得多。不幸的是,问题的症结在于,当遇到ZipException时,还没有报告正在处理哪些文件。我倾向于同意这似乎是一个权限/损坏问题。@DaveONeill-我建议您检查所有可能存在的文件。或者,看看是否可以临时打开大量日志。。。希望它能给你一些线索。谢谢Stephen,我正在与其他几位顾问一起研究这个问题,并且仍在尝试检索我们能够检索到的关于这个问题的所有信息。感谢您迄今为止的投入。