我正在使用javonet将c#或.NET dll加载到java中,它在作为控制台应用程序运行时效果很好,但不能与Web应用程序一起使用。
它甚至适用于Web应用程序吗?
答案 0 :(得分:0)
我刚刚为您创建了示例Tomcat v9.0项目,因此您可以将其用作参考。你可以在这里找到它: https://github.com/Javonet/tutorials/tree/master/JavonetTomcatWebApp
该示例包含两个Eclipse项目:
如您所见,我只是将Javonet和TomcatMiddleApp复制到" WEB-INF / lib"文件夹中。
我的TestJavonet.java文件的内容是:
package TomcatMiddleApp;
import com.javonet.Javonet;
import com.javonet.JavonetException;
import com.javonet.JavonetFramework;
import com.javonet.api.NObject;
public class TestJavonet {
public static final String TMP_DIR = System.getProperty("java.io.tmpdir");
public String CallDotNetRandom()
{
try {
System.out.println("Setting temporary directory for Javonet lic file to: "+TMP_DIR);
//Notice I set here temp dir for Javonet lic file by default it will try to save in system32 and will fail
Javonet.setLicenseDirectory(TMP_DIR);
Javonet.activate("******", "******",JavonetFramework.v45);
NObject objRandom = com.javonet.Javonet.New("System.Random");
Integer value = objRandom.invoke("Next",10,20);
return value.toString();
} catch (JavonetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return e.getMessage();
}
}
}
我的main.jps文件是:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
TomcatMiddleApp.TestJavonet middleApp = new TomcatMiddleApp.TestJavonet();
%>
<%= "Hello Javonet! Random number generated on .NET side:"+middleApp.CallDotNetRandom() %>
</body>
</html>
其他文件没什么特别之处。您不需要使用单独的JAR来定义逻辑,您可以直接将类放在Tomcat Web项目中。
您可以在Java Web项目中轻松使用.NET库。