天行者

分享 学习 交流
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2005-01-19 12:44  天行者  阅读(1422)  评论(0)    收藏  举报

在开发过程中偶尔会遇到要在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中均测试通过