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

Reply via email to