Play2War - 无法从网址创建Vfs.Dir

时间:2013-06-25 09:21:28

标签: playframework-2.0 ebean websphere-8 google-reflections

我正在尝试使用Play2War将Play 2.1.1应用部署到Websphere 8.5.5上。该应用程序在使用play ~run启动时工作正常但是当我将战争部署到Websphere时,我收到以下错误消息:

org.reflections.ReflectionsException:
    could not create Vfs.Dir from url, no matching UrlType was found
    [wsjar:file:/C:/apps/websphere/wlp/usr/servers/server_kev/workarea/org.eclipse.osgi/bundles/45/data/cache/com.ibm.ws.app.manager_gen_0fdbabb2-5ae7-4075-bda1-136e52319906/.cache/WEB-INF/lib/playbackend.jar!/]

其他人看到过这个问题了?

3 个答案:

答案 0 :(得分:1)

如果尚未使用当前的Reflection lib开箱即可,只需添加Vfs UrlType:

Vfs.addDefaultURLTypes(
    new Vfs.UrlType() {
        public boolean matches(URL url) {
           return url.getProtocol().equals("vfs");
        }

        public Vfs.Dir createDir(URL url) {
            return DefaultUrlTypes.jarUrl.createDir(url);
        }

查看latest sources

答案 1 :(得分:0)

如果您使用Subcontext Deployment,请确保在conf/application.conf中添加:

application.context=/KevSheedyApp/

您可以将战争命名为KevSheedyApp.war

您应该可以通过http://host:port/KevSheedyApp/bla/bla

访问您的应用

答案 2 :(得分:0)

即使使用最新版本的Reflection lib,我也会得到这个。我最终发现这是我建造我的(胖)罐子的方式(或者在你的情况下是战争)。我有一个ant脚本(最初由Eclipse生成),它将libs原样复制到jar中并使用某种加载器。我告诉它将lib解压缩到我的jar中,这解决了这个问题。不确定为什么当它们被装入jar / war时会发生这种情况。我希望这有助于某人。