2012-02-29 25 views
2

我刚刚实现了一个连接到MongoDB数据库并通过JasperReports库生成报告(PDF)的JSF(Web JavaScript应用程序)(所以带有.java文件)。CoffeeScript,Node.js,MongoDB和JasperReports,有可能吗?

是否有可能对CoffeeScript和Node.js中的Web应用程序做同样的事情?我对此很新,所以我不知道从哪里开始。

例如:是否有可能通过Node.js或CoffeeScript运行.java?

回答

6

JSF实际上是JavaServer Faces应用程序,而不是JavaScript应用程序。 JavaScript(Node.js,CoffeeScript所基于的)是而不是,尽管名称相似,但它仍等同于Java。

如果您已经拥有基于JSF的应用程序,那么您已经拥有了创建基于Web的应用程序所需的一切。不需要Node.js,CoffeeScript等

去看看JSP,Tomcat等来弄清楚如何呈现网页而不是输出到PDF,你应该设置。

+0

是的,但正如我所说我不想保留这个JSF。我想使用coffescript,nodejs和mongoDB,因为我必须将其导入基于这些语言的另一个Web应用程序。 – Louis 2012-02-29 13:21:45

+2

嗯,首先,你应该更具体地说明你想要保留什么以及不需要保留什么。有一个适用于MongoDB的连接器,可以与Jasper Reports一起使用,还有一个node.js的驱动程序可以连接到MongoDB。至于node.js和与Jasper Reports的集成,我不知道(这是假设你引用的大部分工作都是在Jasper Reports中完成的,而你打算保留它)。如果你想摆脱贾斯珀报告,那么你要么必须从头开始写整个事情,要么找到一个JavaScript替代品。 – 2012-02-29 13:30:21

+0

感谢您的回答,我搜索了很多node.js和他与Jasper Reports的整合。我没有找到任何东西。如果我必须摆脱贾斯珀报告,我想这将是很多工作。我知道Pentaho也是一个报告工具,但我想这是同样的问题。 – Louis 2012-02-29 13:37:22

3

如果您想用JavaScript重写您的应用程序并在node.js上运行它,您应该可以使用PDFKit来构建PDF。

如果您只希望使用您现有的应用程序并将其与node.js服务器集成,我认为您应该明智地并行运行它们(或通过节点向JSF应用程序发出代理请求,以防万一)。除非你能更清楚地陈述你想要完成什么,否则很难给出更好的答案。

+0

感谢您的PDFKit信息,不,我想重新开始,因为我想我不能再使用java文件了。由于没有关于nodejs和jasperreport集成的信息,您的解决方案(并行运行它们)可能是另一种选择 – Louis 2012-02-29 14:02:15

+0

我刚刚发现这个[nodejs模块](https:// github。com/nearinfinity/node-java)你认为可以使用jasper report library吗? – Louis 2012-02-29 14:27:52

+0

我以前没见过那个模块,很有意思。也就是说,不,我认为这不是一个好主意。不过你可以试试! – 2012-02-29 14:33:38

2

是的,这是可能的。您可以使用Node.js启动/停止/控制另一个进程 - 因此您可以在另一个进程中启动.java并使用它来生成PDF。但是......在资源使用方面可能效率不高,所以这是一个悬而未决的问题。或者,您可以编写一个简单的工作程序,该工作程序将从JSON数据生成PDF,并在Node.js和此Java工作程序之间使用0MQ或其他进程间通信。

他 - 他,JSF是我见过的最差的技术之一(我相信它现在和2007年离开Java时一样,现在仍然处于相同的状态),甚至愚蠢的JSP和servlet也更好...