您的位置:首页 > 编程语言 > ASP

在asp/asp.net中调用java写的类

2005-01-19 12:17 316 查看
在开发过程中偶尔会遇到要在ASP/ASP.Net中调用JAVA写的类,以实现之前已经用JAVA实现的功能,下面就以一个简单示例说明详细的使用方法:

1、创建java文件:
使用任何你喜欢的编辑器编辑以下内容:
public class hello
{
    public String helloWorld(String s)
    {
          if(s == null)
               return "";
          else
               return s;
    }
}
将此文件保存为hello.java

2、编译java文件为class:
command方式下运行:javac hello.java

3、将编译好的hello.class文件复制到c:/winnt/java/trustlib目录

4、创建以下文件,命名为test.asp:
<%
set javaObject = GetObject("java:hello")
msg = javaObject.helloWorld("Hello World")
set javaObject = nothing
response.write msg
%>

5、测试:
在IIS中创建虚拟目录test,将test.asp文件copy到此虚拟目录中,重启IIS,在ie中访问http://localhost/test/test.asp,页面显示“Hellow World”,表示调用成功。

在asp.net中可以与ASP同样的方法使用。
vb.net:

        Dim javaObject As Object = GetObject("java:hello")
        Dim msg As String = javaObject.helloWorld("Hello World")
        javaObject = Nothing
        Response.Write(msg)

C#中无法直接使用GetObject,引用System.Resources后用resourceManager.GetObject仍然不成功,没有继续调试,有兴趣的朋友可以试试,或者在VB.net中先封装成.dll,再到C#中调用。

注:步骤2编译时需使用1.3.x的编译器,在1.4的jdk中编译虽正常,但本人在asp/asp.net中调用时显示No object for moniker错误

6、如果在java文件中import了其他jar文件包,在步骤3还需将这些.jar文件copy到c:/winnt/java/packages目录中,并在我的电脑-->属性-->高级-->系统变量,添加classpath变量,其值为引的jar文件的详细路径,如c:/winnt/java/packages/ldapfilt.jar;c:/winnt/java/packages/ldapjdk.jar;c:/winnt/java/packages/ldapsp.jar;.中间用分号隔开,最后用小数点结束

以上在中英文win2000、winXP中均测试通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息