We are using Websphere liberty profile 16.0.0.4 to deploy EAR application. Nothing jee specific. the EAR has a simple WAR file. We put the EAR file inside the dropins folder and it seems like websphere is extracting the content of EAR file inside the workarea directory. When reading the content of one jar sqljdbc.jar it puts the jar inside cache folder. However the sqljdbc.jar seems to be a 0 sized file. Here is a sample path to the sqljdbc.jar. All of them are directories D:\comdata\wlp\usr\servers\defaultServer\workarea\org.eclipse.osgi\121\data\cach e\com.ibm.ws.app.manager_88\Tax2290.war\WEB-INF\lib\.cache\sqljdbc.jar The sqljdbc.jar inside sqljdbc.jar folder above turns out to be 0 byte sized. Because of this ZipException is thrown. There is also this exception thrown before the ZipException. I am not sure if it is related to this or not. java.lang.ClassNotFoundException: iconnectlogout com.ibm.ws.jaxrs20.server.component.JaxRsWebModuleInfoBuilder What are these org.eclipse.osgi, cache, com.ibm.ws.app.manager_88 folders. We checked the WAR file inside EAR and it has the right sized sqljdbc.jar. any ideas why this is happening? Is anything getting downloaded from internet? Proxy / firewall issues. First Edit: ----------- Uploaded the problematic ear file.
这是有问题的耳朵文件的链接 https://wetransfer.com/downloads/3585882e88626f6e5a480075fba0c48e20170118170610/43e43f
答案 0 :(得分:0)
Tax2290.war的WEB-INF / lib目录中的sqljdbc.jar文件包含一个具有相同名称的嵌入式JAR文件 - 嵌入式sqljdbc.jar文件的长度为0 - 另一个文件是sqljdbc .jar.old,这似乎是一个有效的档案。 Liberty正在窒息这个嵌入式JAR文件。
您应该能够通过从sqljdbc.jar中删除该0长度的JAR文件来解决问题 - 或者将其替换为有效的JAR。
也就是说,Liberty应该提供更好的错误消息或者能够更好地处理这种情况,因此我建议在IBM支持下打开PMR来解决这个问题。
谢谢,安迪