gpt4 book ai didi

java - 如何从 asp 调用 java?

转载 作者:行者123 更新时间:2023-11-30 12:01:41 24 4
gpt4 key购买 nike

我不熟悉 ASP,但我正在帮助某人处理他们的网站,作为一个副项目。我正在尝试使用 VB 从 ASP 调用 Apache FOP(一个 Java 应用程序)。我看过使用 GetObject('java:...') 构造的简单示例,但我不知道如何从 java 对象传递和检索二进制数据。

理想情况下,我会在内存中完成这一切——我宁愿不必将我的数据写入磁盘,对该文件调用 FOP(它将读取,然后写入一个新文件),然后重新读取磁盘上的数据。该网站不是那么忙,所以我可以这样做,但它似乎效率不高。

最佳答案

我想出了一个解决方法。这是针对在 Win 2k3 服务器上运行的 IIS——旧版本会容易得多。

首先,我在主站点之外创建了一个子目录(出于安全目的),并将一个新的应用程序池附加到该目录。新的应用程序池需要作为本地系统运行。我无法让 fop.bat 工作,即使作为本地系统运行,但我可以调用 java,所以我将整个 fop 命令行放入我的 asp 脚本中,类似于这个片段:

Dim shell, foppath, workpath
Set shell = Server.CreateObject("WScript.Shell")

foppath = Server.MapPath("/fop/")
workpath = Server.MapPath("/tmp/")
shell.CurrentDirectory = foppath

Dim commandline
commandline = "java -Denv.windir=C:\WINDOWS -cp """
'set classpath
commandline = commandline & foppath & "\build\fop.jar;"
commandline = commandline & foppath & "\build\fop-sandbox.jar;"
commandline = commandline & foppath & "\build\fop-hyph.jar;"
commandline = commandline & foppath & "\lib\xml-apis-1.3.04.jar;"
commandline = commandline & foppath & "\lib\xml-apis-ext-1.3.04.jar;"
commandline = commandline & foppath & "\lib\xercesImpl-2.7.1.jar;"
commandline = commandline & foppath & "\lib\xalan-2.7.0.jar;"
commandline = commandline & foppath & "\lib\serializer-2.7.0.jar;"
commandline = commandline & foppath & "\lib\batik-all-1.7.jar;"
commandline = commandline & foppath & "\lib\xmlgraphics-commons-1.3.1.jar;"
commandline = commandline & foppath & "\lib\avalon-framework-4.2.0.jar;"
commandline = commandline & foppath & "\lib\commons-io-1.3.1.jar;"
commandline = commandline & foppath & "\lib\commons-logging-1.0.4.jar;"
commandline = commandline & foppath & "\lib\jai_imageio.jar;"
commandline = commandline & foppath & "\lib\fop-hyph.jar;"
commandline = commandline & """ org.apache.fop.cli.Main "
commandline = commandline & workpath & "/file.fo "
commandline = commandline & workpath & "/file.pdf "

Dim ResultCode
ResultCode = Shell.Run(commandline,,True) ' True = Wait for FOP to finish

之后,我确保清理我的临时文件等。也许这不是最优雅的解决方案,但鉴于需要,我相信它会工作很长时间。

关于java - 如何从 asp 调用 java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/426483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com