DefaultVFS.list throws IOException on Websphere6.1
--------------------------------------------------
Key: STS-806
URL: http://www.stripesframework.org/jira/browse/STS-806
Project: Stripes
Issue Type: Bug
Components: ActionBean Dispatching
Affects Versions: Release 1.5.5
Environment: Websphere on Linux
Reporter: Simon Kitching
A webapp which worked in Websphere-6.1 on linux (RHEL) using Stripes 1.5.3 no
longer initialises with Stripes 1.5.5.
Problem is change of class ResolverUtil to use VFS. Method DefaultVFS.list(...)
throws an IOException
which causes classpath-scanning to fail, meaning no ActionBeans get bound.
Same app works fine on jboss4+ubuntu or jetty7+ubuntu.
2011-02-07 13:03:28,620 INFO [VFS] Using VFS adapter
net.sourceforge.stripes.vfs.DefaultVFS
2011-02-07 13:03:28,642 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,651 INFO [BootstrapPropertyResolver] Class
implementing/extending ActionResolver found in web.xml:
nz.co.airnz.isis.vgrabview.stripes.VGrabViewActionResolver
2011-02-07 13:03:28,686 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes.actionbeans -- sun.io.MalformedInputException
2011-02-07 13:03:28,703 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,719 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,733 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,746 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,768 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,782 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,796 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,811 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,824 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,837 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,850 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,865 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,879 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,882 WARN [DefaultMultipartWrapperFactory] No
MultipartWrapper implementation could be loaded
2011-02-07 13:03:28,894 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,912 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,924 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,936 WARN [ResolverUtil] Could not read package:
nz.co.airnz.isis.vgrabview.stripes -- sun.io.MalformedInputException
2011-02-07 13:03:28,936 INFO [StripesFilter] Stripes Initialization Complete.
Version: 1.5.5, Build: 1384:1385
2011-02-07 13:03:28,949 INFO [ExpressionValidator] Expression validation will
be performed using:
net.sourceforge.stripes.validation.expression.CommonsElExpressionExecutor
2011-02-07 13:03:28,961 WARN [DefaultExceptionHandler] Unhandled exception
caught by the Stripes default exception handler.
net.sourceforge.stripes.exception.ActionBeanNotFoundException: Could not locate
an ActionBean that is bound to the URL [/en_NZ/secure/auctionHome.do]. Commons
reasons for this include mis-matched URLs and forgetting to implement
ActionBean in your class. Registered ActionBeans are:
{/controller/DefaultView.action/=class
net.sourceforge.stripes.controller.DefaultViewActionBean,
/controller/DefaultView.action=class
net.sourceforge.stripes.controller.DefaultViewActionBean}
at
net.sourceforge.stripes.controller.AnnotatedClassActionResolver.getActionBean(AnnotatedClassActionResolver.java:351)
Note:
sun.io.MalformedInputException
--> java.io.CharConversionException
--> java.io.IOException
--> java.lang.Exception (checked exception)
== ResolverUtil.find(...) in 1.5.3
public ResolverUtil<T> find(Test test, String packageName) {
String path = getPackagePath(packageName);
try {
List<URL> urls =
Collections.list(getClassLoader().getResources(path));
for (URL url : urls) {
List<String> children = listClassResources(url, path);
for (String child : children) {
addIfMatching(test, child);
}
}
}
catch (IOException ioe) {
log.warn("Could not read package: ", packageName, " -- ", ioe);
}
return this;
}
== ResolverUtil.find(...) in 1.5.5
public ResolverUtil<T> find(Test test, String packageName) {
String path = getPackagePath(packageName);
try {
List<String> children = VFS.getInstance().list(path);
for (String child : children) {
if (child.endsWith(".class"))
addIfMatching(test, child);
}
}
catch (IOException ioe) {
log.warn("Could not read package: ", packageName, " -- ", ioe);
}
return this;
}
Sorry I can't give more details at the moment; we develop the app on Tomcat,
and only deploy onto websphere during final testing. The websphere instance
isn't under our control, so debugging on it is not possible. I will set up a
local websphere instance to diagnose this further as soon as I get some spare
time..
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world?
http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development