将应用程序文件上传到WSO2 Enterprise Mobility Manager Publisher时发生FileNotFoundException

德里克

我正在尝试将iOS应用上传到WSO2 EMM Publisher,但它一直抛出FileNotFoundException

java.io.FileNotFoundException: null\repository\deployment\server\jaggeryapps\publisher\upload\hlZDGMobileKiosk_368_5256.ipa 
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at com.wso2.mobile.mam.manifestUtils.ZipFileReading.readiOSManifestFile(ZipFileReading.java:87)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
    at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)
    at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
    at org.jaggeryjs.rhino.publisher.c0._c_anonymous_1(/publisher//mobileupload.jag:70)
    at org.jaggeryjs.rhino.publisher.c0.call(/publisher//mobileupload.jag)
    at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
    at org.jaggeryjs.rhino.publisher.c0._c_script_0(/publisher//mobileupload.jag:2)
    at org.jaggeryjs.rhino.publisher.c0.call(/publisher//mobileupload.jag)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
    at org.jaggeryjs.rhino.publisher.c0.call(/publisher//mobileupload.jag)
    at org.jaggeryjs.rhino.publisher.c0.exec(/publisher//mobileupload.jag)
    at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567)
    at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273)
    at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:447)
    at org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:29)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
    at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)
    at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
    at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)
    at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
    at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)
    at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

从wso2 mobileupload.jag抛出此异常

var path = process.getEnv("PWD")+"/repository/deployment/server/jaggeryapps"+meta.path;

我打印process.getEnv(“ PWD”),它总是返回null。那么我该如何解决这个问题呢?

整个mobileupload.jag如下:

<%
(function(){
var mam_config = require('/config/mam-config.json');
var log=new Log();
var makeid= function()
{
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    for( var i=0; i < 5; i++ )
        text += possible.charAt(Math.floor(Math.random() * possible.length));

    return text;
}
var getExtension = function(file){
    var path = file.getName();
    var index = path.lastIndexOf('.');
    var ext = index < path.length ? path.substring(index + 1) : '';
    return ext;
}
var getFileOnly = function(file){
    var path = file.getName();
    var index = path.lastIndexOf('.');
    var name = index < path.length ? path.substring(0,index) : '';
    return name;
}
var saveFile = function(file){
    if(file!=undefined){
        var file_n= file.getName()
        if(file_n==""){
            return "";
        }
        var uid= makeid();
        var file_name = mam_config.filePreciseLocation+uid+file_n;
        file.saveAs(file_name);
        return file_name;
    }
    return "";
}
function mergeRecursive(obj1, obj2) {
    for (var p in obj2) {
        try {
            // Property in destination object set; update its value.
            if (obj2[p].constructor == Object) {
                obj1[p] = MergeRecursive(obj1[p], obj2[p]);
            } else {
                obj1[p] = obj2[p];
            }
        } catch (e) {
            // Property in destination object not set; create it and set its value.
            obj1[p] = obj2[p];
        }
    }
    return obj1;
}
var file = request.getAllFiles().file;
var meta = {};
if(file==undefined){
    //return error
    response.sendError(500);
}else{
    meta.path = saveFile(file);
    meta.path = '/publisher' +meta.path;
    var ext = getExtension(file);
    if(ext=="ipa" || ext =="apk"){
        var zipFileReading = new Packages.com.wso2.mobile.mam.manifestUtils.ZipFileReading();
        var path = process.getEnv("PWD")+"/repository/deployment/server/jaggeryapps"+meta.path;
        try{
            if(ext=="ipa"){
                var d = zipFileReading.readiOSManifestFile(path, getFileOnly(file));
                log.debug(d);
                var information = JSON.parse(d);
                mergeRecursive(meta,information);
            }else if(ext=="apk"){
                var d = zipFileReading.readAndroidManifestFile(path);
                log.debug(d);
                var information = JSON.parse(d);
                mergeRecursive(meta,information);
            }
            print(meta);
            log.debug("Successfully discovered");
        }catch(e){
            log.debug("Uploaded file is corrupted");
            print({"ok" : false, "message" : "Validation failure", "report" : {"failed" : true, "name" : ["Uploaded file is corrupted"]}})
        }
    }else{
        print({"ok" : false, "message" : "Validation failure", "report" : {"failed" : true, "name" : ["Invalid Filetype - Uploaded file is not an archive"]}})
        return;
    }   
}
}());
%>

提前致谢!

Chatura Dilan

请更换

process.getEnv("PWD")

Packages.java.lang.System.getProperty("carbon.home") 

在mobileupload.jag中

WSO2移动EMM的1.1.0版本中解决了此问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用WSO2 Enterprise Mobility Manager指定全局HTTP代理

来自分类Dev

如何使用WSO2 Enterprise Mobility Manager指定全局HTTP代理

来自分类Dev

在ESB中添加API Manager功能后,无法访问WSO2 API Manager Publisher

来自分类Dev

在ESB中添加API Manager功能后,无法访问WSO2 API Manager Publisher

来自分类Dev

如何使用WSO2 API Manager 1.10.0刷新应用程序的访问令牌?

来自分类Dev

通过Play应用程序将json文件上传到Cassandra数据库时出错

来自分类Dev

无法登录到Oracle Enterprise Manager Express

来自分类Dev

如何重新配置WSO2 API Manager Publisher,以每页显示更多API

来自分类Dev

WSO2 Publisher / Store api-manager.xml配置带有网关集群的GatewayEndpoint

来自分类Dev

在您的Web应用程序中,将文件上传到S3时,从客户端直接将它们上传到S3是否安全?

来自分类Dev

在您的Web应用程序中,将文件上传到S3时,从客户端直接将它们上传到S3是否安全?

来自分类Dev

将文件上传到ftp时,C#Windows应用程序不支持给定的路径formate

来自分类Dev

WSO2 Enterprise Integrator 入门

来自分类Dev

尝试写入新文件时发生FileNotFoundException(访问被拒绝)

来自分类Dev

尝试写入新文件时发生FileNotFoundException(访问被拒绝)

来自分类Dev

注册OAuth应用程序时发生WSO2 EMM错误:emm

来自分类Dev

注册OAuth应用程序时发生WSO2 EMM错误:emm

来自分类Dev

使用WSO2 DAS查看API Manager统计信息时出错

来自分类Dev

使用 Oracle DB 时无法重新启动 WSO2 API Manager 2.1 Analytics

来自分类Dev

WSO2 api manager 共享应用订阅

来自分类Dev

使用Terraform将文件上传到AWS Secrets Manager

来自分类Dev

当将数据上传到Parse.com时,UIAlertView似乎冻结了应用程序

来自分类Dev

将iOS应用程序上传到itunesconnect时出错“无法打开ssh会话(16)”

来自分类Dev

将iOS应用程序上传到iTunes Connect时出错

来自分类Dev

通过对等方重置连接-将文件上传到另一个应用程序时发生SSL_connect错误

来自分类Dev

通过对等方重置连接-将文件上传到另一个应用程序时发生SSL_connect错误

来自分类Dev

如何将Web应用程序文件上传到Amazon EC2上的Windows Server

来自分类Dev

WSO2 API Manager - API 特定的配置文件

来自分类Dev

部署碳应用程序BankingSample_1.0.0.car时,wso2 NullPointer

Related 相关文章

  1. 1

    如何使用WSO2 Enterprise Mobility Manager指定全局HTTP代理

  2. 2

    如何使用WSO2 Enterprise Mobility Manager指定全局HTTP代理

  3. 3

    在ESB中添加API Manager功能后,无法访问WSO2 API Manager Publisher

  4. 4

    在ESB中添加API Manager功能后,无法访问WSO2 API Manager Publisher

  5. 5

    如何使用WSO2 API Manager 1.10.0刷新应用程序的访问令牌?

  6. 6

    通过Play应用程序将json文件上传到Cassandra数据库时出错

  7. 7

    无法登录到Oracle Enterprise Manager Express

  8. 8

    如何重新配置WSO2 API Manager Publisher,以每页显示更多API

  9. 9

    WSO2 Publisher / Store api-manager.xml配置带有网关集群的GatewayEndpoint

  10. 10

    在您的Web应用程序中,将文件上传到S3时,从客户端直接将它们上传到S3是否安全?

  11. 11

    在您的Web应用程序中,将文件上传到S3时,从客户端直接将它们上传到S3是否安全?

  12. 12

    将文件上传到ftp时,C#Windows应用程序不支持给定的路径formate

  13. 13

    WSO2 Enterprise Integrator 入门

  14. 14

    尝试写入新文件时发生FileNotFoundException(访问被拒绝)

  15. 15

    尝试写入新文件时发生FileNotFoundException(访问被拒绝)

  16. 16

    注册OAuth应用程序时发生WSO2 EMM错误:emm

  17. 17

    注册OAuth应用程序时发生WSO2 EMM错误:emm

  18. 18

    使用WSO2 DAS查看API Manager统计信息时出错

  19. 19

    使用 Oracle DB 时无法重新启动 WSO2 API Manager 2.1 Analytics

  20. 20

    WSO2 api manager 共享应用订阅

  21. 21

    使用Terraform将文件上传到AWS Secrets Manager

  22. 22

    当将数据上传到Parse.com时,UIAlertView似乎冻结了应用程序

  23. 23

    将iOS应用程序上传到itunesconnect时出错“无法打开ssh会话(16)”

  24. 24

    将iOS应用程序上传到iTunes Connect时出错

  25. 25

    通过对等方重置连接-将文件上传到另一个应用程序时发生SSL_connect错误

  26. 26

    通过对等方重置连接-将文件上传到另一个应用程序时发生SSL_connect错误

  27. 27

    如何将Web应用程序文件上传到Amazon EC2上的Windows Server

  28. 28

    WSO2 API Manager - API 特定的配置文件

  29. 29

    部署碳应用程序BankingSample_1.0.0.car时,wso2 NullPointer

热门标签

归档