Skip to Main Content

Application Development Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

An IdcZipException error with custom component: !syZipFormatNonZeroDirectoryLength

Thomas BeauvaisFeb 5 2014 — edited Feb 20 2014

A quick Google search reveals zero results.


When I install a custom component with a jars (in this case Spring jars) and restart the server, I get the following stack trace for every folder entry inside earch Spring jars!  That is dozens and dozens of these stack tracks.  I have no idea what my be causing this.  It isn't a "critical error" as the classes are loaded but why is it printing out such a verbose exception for a "non problem"?


Any insight would be greatly appreciated.  Let me know if I can supply any more information.


NOTICE: intradoc.io.zip.IdcZipException: !syZipFormatNonZeroDirectoryLength,org/springframework/instrument/classloading/

  at intradoc.io.zip.IdcZipFileFormatter.validateCentralDirectoryEntry(IdcZipFileFormatter.java:453)

  at intradoc.io.zip.IdcZipFile.init(IdcZipFile.java:195)

  at intradoc.loader.IdcLoaderElementList.makePathElement(IdcLoaderElementList.java:221)

  at intradoc.loader.IdcLoaderElementList.addPathElement(IdcLoaderElementList.java:361)

  at intradoc.loader.IdcClassLoader.addClassPathElement(IdcClassLoader.java:406)

  at intradoc.server.ComponentLoader.loadEnabledComponent(ComponentLoader.java:771)

  at intradoc.server.ComponentLoader.load(ComponentLoader.java:428)

  at intradoc.server.IdcSystemLoader.initComponentData(IdcSystemLoader.java:499)

  at intradoc.server.IdcSystemLoader.finishInit(IdcSystemLoader.java:372)

  at intradoc.server.IdcSystemLoader.init(IdcSystemLoader.java:336)

  at intradoc.server.IdcServerManager.init(IdcServerManager.java:122)

  at intradoc.idcwls.IdcServletRequestUtils.initializeServer(IdcServletRequestUtils.java:626)

  at intradoc.idcwls.IdcServletRequestUtils.initializeServer(IdcServletRequestUtils.java:457)

  at intradoc.idcwls.IdcIntegrateWrapper.initializeServer(IdcIntegrateWrapper.java:103)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

  at java.lang.reflect.Method.invoke(Method.java:597)

  at idcservlet.common.IdcMethodHolder.invokeMethod(IdcMethodHolder.java:87)

  at idcservlet.common.ClassHelperUtils.executeMethodEx(ClassHelperUtils.java:305)

  at idcservlet.common.ClassHelperUtils.executeMethodWithArgs(ClassHelperUtils.java:278)

  at idcservlet.ServletUtils.initializeContentServer(ServletUtils.java:1257)

  at idcservlet.ServletUtils.startAndConfigureServer(ServletUtils.java:531)

  at idcservlet.ServletUtils.initializeAllServers(ServletUtils.java:460)

  at idcservlet.IdcFilter.initContentServer(IdcFilter.java:181)

  at idcservlet.IdcFilter.init(IdcFilter.java:156)

  at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:343)

  at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

  at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)

  at weblogic.servlet.internal.FilterManager.loadFilter(FilterManager.java:96)

  at weblogic.servlet.internal.FilterManager.preloadFilters(FilterManager.java:57)

  at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1872)

  at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3154)

  at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1518)

  at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:484)

  at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)

  at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)

  at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)

  at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)

  at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)

  at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)

  at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)

  at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)

  at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)

  at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:671)

  at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)

  at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)

  at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:59)

  at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)

  at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)

  at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)

  at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)

  at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)

  at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)

  at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)

  at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)

  at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)

  at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)

  at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:180)

  at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:96)

  at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)

  at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)

  at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)

  at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

Comments

794117
Java != javascript.
They are two very different things.

Think of the JSP lifecycle.
JSP is invoked. It runs Java/JSTL, produces an HTML page.
Java stops running.
HTML page arrives at your client. Javascript runs.
The only way to run java/jstl again is to make a request: click a link, submit a form... and get a new response.

I can't exactly figure out what you're doing there with your mix of javascript and JSTL.

You can use JSTL to produce javascript code.
For instance
function myFunction(){
  var stateArray = new Array();
  <c:forEach var="state" items="${stateList}" varStatus="status">
    stateArray[${status.index}] = "${state}";
  </c:forEach>
}
When this run it executes the JSTL and would produce something like
function myFunction(){
  var stateArray = new Array();  
  stateArray[0] = "North Carolina";
  stateArray[1] = "SouthCarolina";
  stateArray[2] = "North Dakota";
  stateArray[3] = "South Dakota";
  ...
}
Does that make things clearer?
843840
Evnafets,

Thanks for the good explanation. I understand that javascript runs on the client side. As you said, the JSTL is converted into HTML on the server side and sent to the client. If you look at my function, I have some JSTL code inside the javascript string. I understand from your code that the JSTL functions you use inside the javascript will be converted into actual javascript code when the HTML page is rendered. I have one question though. Will this conversion take place when the HTML is initially created (OR) will it take place only when the function is invoked by the client. I am almost sure the first option is right, but I want to double check with you.

Thanks again!!
794117
The first option is right. It happens at the server end when the JSP is requested.
Basically if you "view source" on the generated page, thats what your javascript has to work with.
I have some JSTL code inside the javascript string
And thats where things where going wrong. You're mixing it badly.
var str="";
str +='<c:forEach var="statesDetail" items="${statesList}">';
str +='<c:out value="${statesDetail}"></c:out>';
str +='</c:forEach>';
The "escape" characters that you put in there stopped the tags being evaluated.
Nesting the <c:forEach> loop in a String is incorrect.
I can understand the <c:out> tag being in the string - that bits fine.
But not the <c:forEach>

Anything that is not JSP/JSTL tags is just template text and gets output as is.
843840
Great!...i get it now...thanks for the prompt response.
843840
Hi,

I tried pasting a similar code into a javascript function like this:

var stateArray = new Array();
<c:forEach var="state" items="${stateList}" varStatus="status">
stateArray[${status.index}] = "${state}";
</c:forEach>

But I get an error message saying that:

"Character data not allowed in element head". What cud be the reason for this?
843840
That's an XML error. You apparently declared your JSP as XHTML instead of HTML.

You need to wrap special chatacters in a CDATA block. If you know XML, you should know how.
1 - 6
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Mar 20 2014
Added on Feb 5 2014
4 comments
2,524 views