如何解决在 webService 上调用 jni4net 时出错,URI 方案不是“文件”
我正在使用 jni4net,我正在 java 应用程序中读取 .NET dll,当我直接在 main 方法上运行时它可以工作。下面是一个例子:
public static void main( String[] args ) throws IOException {
Bridge.setVerbose(true);
Bridge.init();
File dllFile2 = new File("Cripto.j4n.dll");
Bridge.LoadAndRegisterAssemblyFrom(dllFile2);
...
...
}
但是,当我尝试从下面的网络服务运行时
@GET
@Path("/conect")
public String conect() throws IOException {
Bridge.setVerbose(true);
Bridge.init(); //the error is triggered at this point
...
...
}
发布了以下错误:
Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"
我已经尝试指出 dll Cripto.j4n.dll 的路径,指示绝对路径,但它不起作用,下面是我尝试的示例:
Bridge.init(new File("C:\\apps\\MyApp\\Cripto.j4n.dll"));
Bridge.init(new File("Cripto.j4n.dll")); //also tried this way
无论如何,我需要在webService上从.dll调用,服务器是wildfly 9,我该怎么做?有什么提示吗?
解决方法
错误表明它需要格式为 file:<full path here>
的路径,请在此处查看答案:Unable to call dll from Oracle 和此处:URI scheme is not "file"
我找到了解决方案。
我直接指向 .dll 文件,此外,我指向 .dll 错误,他正在寻找“jni4net.n-0.8.5.0.dll”而不是“Cripto.j4n.dll” (这是我创建的文件),所以解决方案是指出“jni4net.n-0.8.5.0.dll”所在的文件夹是这样的:
Bridge.init( new java.io.File("C:\apps\MyApp"));
我没有报告文件,而是报告了“jni4net.n-0.8.5.0.dll”所在的文件夹
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。