I have not solved it yet
I use STS 2.3.2 and the app is deployed to an standalone WAS 6.1 with all the latest fixpacks ....
Its really a shame Roo 1.0 does not work on WAS ...![]()
I have not solved it yet
I use STS 2.3.2 and the app is deployed to an standalone WAS 6.1 with all the latest fixpacks ....
Its really a shame Roo 1.0 does not work on WAS ...![]()
It's a pitty, indeed.
I'm working with both STS 2.3.2 and RAD 7.
Maybe I can fany solution using the local embebed websphere 6.1 server.
Maybe the JSP, Servlets, AspectJ or some other technology used by Roo is totally incompatible with this "old" application server as it seems to happen with tomcat 5.5.
However, I think it should worth trying to get Roo working in this widely used appserver.
we downloaded the roo 1.1 code and create a project out of it [ to test if the issue is resolved in the upcoming version]but it still persist.
So we ended up removing the fn:substring function in the auto generated jsps .
Now it works fine on WAS 6.1
Happy to hear the problem was related to EL and not Roo itself.
Well I was investigate this thing , first I make a simple test, I am using the this jars:
Code:<dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency>
then I maje a simple.jsp
And it works then I make a jspxCode:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <c:out value="test"/> <br/> <c:out value="${4+4}"/> <br/> <c:forEach var="num" items="${fn:split('hola,tomas,test', ',')}"> <c:out value="${num}" /> <br/> </c:forEach>
And it fails, then I review the logs and they say something validation so, I just change the div dor <jsp:root> and it worksCode:<?xml version="1.0" encoding="windows-1252"?> <div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"> <jsp:directive.page contentType="text/html" pageEncoding="windows-1252"/> <!-- any content can be specified here, e.g.: --> <jsp:element name="text"> <jsp:attribute name="lang">EN</jsp:attribute> <jsp:body>Hello World!</jsp:body> </jsp:element> <br/> <div> <c:out value="test"/> <br/> <c:out value="${4+4}"/> <br/> <c:forEach var="num" items="${fn:split('hola,tomas,test', ',')}"> <c:out value="${num}" /> <br/> </c:forEach> </div> </div>
I think that ibm is making something wrong because the div just should work. I also tested that is not necessary to change the libraries for jstl the library that spring provide for jstl are right. Just remember to change the <div xmls by <jsp:root xmlsCode:<?xml version="1.0" encoding="windows-1252"?> <jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"> <jsp:directive.page contentType="text/html" pageEncoding="windows-1252"/> <!-- any content can be specified here, e.g.: --> <jsp:element name="text"> <jsp:attribute name="lang">EN</jsp:attribute> <jsp:body>Hello World!</jsp:body> </jsp:element> <br/> <div> <c:out value="test"/> <br/> <c:out value="${4+4}"/> <br/> <c:forEach var="num" items="${fn:split('hola,tomas,test', ',')}"> <c:out value="${num}" /> <br/> </c:forEach> </div> </jsp:root>
Last edited by atomsfat; Jul 1st, 2010 at 06:19 PM. Reason: I add make more testing
Error page exception
The server cannot use the error page specified for your application to handle the Original Exception printed below. Please see the Error Page Exception below for a description of the problem with the specified error page.
Original Exception:
Error Message: SRVE0202E: Servlet [esbadmin]: org.springframework.web.servlet.DispatcherServlet was found, but is corrupt: SRVE0227I: 1. Check that the class resides in the proper package directory. SRVE0228I: 2. Check that the classname has been defined in the server using the proper case and fully qualified package. SRVE0229I: 3. Check that the class was transferred to the filesystem using a binary transfer mode. SRVE0230I: 4. Check that the class was compiled using the proper case (as defined in the class definition). SRVE0231E: 5. Check that the class file was not renamed after it was compiled.
Error Code: 404
Target Servlet: esbadmin
Error Stack:
javax.servlet.UnavailableException: SRVE0202E: Servlet [esbadmin]: org.springframework.web.servlet.DispatcherServlet was found, but is corrupt:
SRVE0227I: 1. Check that the class resides in the proper package directory.
SRVE0228I: 2. Check that the classname has been defined in the server using the proper case and fully qualified package.
SRVE0229I: 3. Check that the class was transferred to the filesystem using a binary transfer mode.
SRVE0230I: 4. Check that the class was compiled using the proper case (as defined in the class definition).
SRVE0231E: 5. Check that the class file was not renamed after it was compiled.
at com.ibm.ws.webcontainer.servlet.ServletWrapper.han dleRequest(ServletWrapper.java:336)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.h andleRequest(ServletWrapper.java:481)
at com.ibm.ws.webcontainer.webapp.WebApp.handleReques t(WebApp.java:3453)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequ est(WebGroup.java:267)
at com.ibm.ws.webcontainer.WebContainer.handleRequest (WebContainer.java:815)
at com.ibm.ws.wswebcontainer.WebContainer.handleReque st(WebContainer.java:1466)
at com.ibm.ws.webcontainer.channel.WCChannelLink.read y(WCChannelLink.java:119)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.handleDiscrimination(HttpInboundLink.java:458)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.handleNewInformation(HttpInboundLink.java:387)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.ready(HttpInboundLink.java:267)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialRe adCallback.sendToDiscriminators(NewConnectionIniti alReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialRe adCallback.complete(NewConnectionInitialReadCallba ck.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListe ner.futureCompleted(AioReadCompletionListener.java :165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallbac k(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletion Actions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture .java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHand ler.java:196)
at com.ibm.io.async.ResultHandler.runEventProcessingL oop(ResultHandler.java:751)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler .java:881)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.j ava:1473)
Error Page Exception:
Error Message: (javax/servlet/UnavailableException) bad major version at offset=6
Error Code: 500
Target Servlet: esbadmin
Error Stack:
java.lang.UnsupportedClassVersionError: (javax/servlet/UnavailableException) bad major version at offset=6
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java :258)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:151)
at com.ibm.ws.classloader.CompoundClassLoader._define Class(CompoundClassLoader.java:562)
at com.ibm.ws.classloader.CompoundClassLoader.findCla ss(CompoundClassLoader.java:514)
at com.ibm.ws.classloader.CompoundClassLoader.loadCla ss(CompoundClassLoader.java:397)
at java.lang.ClassLoader.loadClass(ClassLoader.java:5 97)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:163)
at com.ibm.ws.webcontainer.webapp.WebApp.getErrorPage Dispatcher(WebApp.java:3138)
at com.ibm.ws.webcontainer.webapp.WebApp.sendError(We bApp.java:2907)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.h andleRequest(ServletWrapper.java:493)
at com.ibm.ws.webcontainer.webapp.WebApp.handleReques t(WebApp.java:3453)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequ est(WebGroup.java:267)
at com.ibm.ws.webcontainer.WebContainer.handleRequest (WebContainer.java:815)
at com.ibm.ws.wswebcontainer.WebContainer.handleReque st(WebContainer.java:1466)
at com.ibm.ws.webcontainer.channel.WCChannelLink.read y(WCChannelLink.java:119)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.handleDiscrimination(HttpInboundLink.java:458)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.handleNewInformation(HttpInboundLink.java:387)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLi nk.ready(HttpInboundLink.java:267)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialRe adCallback.sendToDiscriminators(NewConnectionIniti alReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialRe adCallback.complete(NewConnectionInitialReadCallba ck.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListe ner.futureCompleted(AioReadCompletionListener.java :165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallbac k(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletion Actions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture .java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHand ler.java:196)
at com.ibm.io.async.ResultHandler.runEventProcessingL oop(ResultHandler.java:751)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler .java:881)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.j ava:1473)
So, did anybody find the way how to use JSTL 1.2 in Websphere 6.1 ?
Based on your jar listing and POM file, it looks like you are using JAXB 2.1 with WAS 6.1. To my knowledge, WAS 6.1 only supports JAXB 2.0. Version 2.1 is supported in WAS 7.
We have tried something similar and wind up getting verify errors from WAS. Did you get this to work simply by adding the relevant jars to a ear/war and using PARENT_LAST class loading?