Articles of java ee

从Java触发shell脚本的最佳方法

我有一个我想从J2EE Web应用程序触发的shell脚本。 该脚本做了很多事情 – 处理,FTP等 – 这是一个遗留问题。 运行需要很长时间。 我想知道什么是最好的方法。 我希望用户能够点击链接,触发脚本,并向用户显示一条消息,说明脚本已经启动。 我希望HTTP请求/响应周期是瞬时的,不pipe我的脚本需要很长时间才能运行。 我可以想到三个select: 在处理用户点击的过程中产生一个新的线程。 但是,我不认为这符合J2EE规范。 向HTTP响应stream发送一些输出并在触发脚本之前提交它。 这给出了HTTP请求/响应循环已经完成的错觉,但实际上处理请求的线程仍然在那里等待shell脚本完成。 所以我已经基本上劫持了容器HTTP处理线程为我自己的目的。 创build一个包装脚本,在后台启动我的主脚本。 这将使请求/响应周期在容器中正常完成。 以上所有将使用servlet和Runtime.getRuntime()。exec()。 这在Java 1.4.2上使用Oracle的OC4J应用服务器在Solaris上运行。 请问有没有人有任何意见哪个是最简单的解决scheme,为什么? 还是有没有人有更好的方法? 我们已经有了Quartz,但是我们不希望将shell脚本重新实现为Java进程。 谢谢。

如何在java中获取当前目录?

我正在尝试从java获取我的项目的当前目录。 我正在使用下面的代码行来获取path的详细信息。 types1: File directory = new File ("."); try { System.out.println ("Current directory's canonical path: " + directory.getCanonicalPath()); System.out.println ("Current directory's absolute path: " + directory.getAbsolutePath()); }catch(Exception e) { System.out.println("Exceptione is ="+e.getMessage()); } types2: String currentDir = System.getProperty("user.dir"); System.out.println("Current dir using System:" +currentDir); 从主类执行上述代码时,我正在获取项目目录。 当我从服务器端执行,得到“当前目录使用系统:D:\ Apache Tomcat 6.0.16 \ bin”。 但是我的项目位于D:\Apache Tomcat 6.0.16\wepapps\SampleStructs 。 […]

通过命令行在Jboss 7.0.1中部署战争

我有一个战争文件,我需要部署在Jboss 7.0.1服务器上。 现在我已经通过了文档,但没有发现任何东西来部署战争文件。 而且通过命令行部署你的构build,你通常必须使用maven。 那么我们也需要这场战争吗? 如果是这样,它会影响战争档案吗? 仅供参考:我正在使用Linux(CentOs5)…

NameNode:java.net.BindException

嗨伙计我被困在非常奇怪的问题。我正在安装HBase和Hadoop的另一个虚拟机从我的机器访问它。现在我已经正确安装hadoop,然后iran它./start-all.sh,我看到所有的进程完美地运行。所以我做了,我看到了 JobTracker的 的TaskTracker 名称节点 secondrynamenode 数据节点 一切运行良好。现在当我设置hbase,然后启动hadoop和Hbase,我看到namenode没有运行,并在日志(从namenode日志文件)我得到这个exception java.lang.InterruptedException: sleep interrupted at java.lang.Thread.sleep(Native Method) at org.apache.hadoop.hdfs.server.namenode.DecommissionManager$Monitor.run(DecommissionManager.java:65) at java.lang.Thread.run(Thread.java:662) 2012-05-19 08:46:07,493 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Number of transactions: 0 Total time for transactions(ms): 0Number of transactions batched in Syncs: 0 Number of syncs: 0 SyncTimes(ms): 0 2012-05-19 08:46:07,516 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.net.BindException: Problem binding to localhost/23.21.195.24:54310 : Cannot assign requested […]

无法启动GlassFish 4.0(Windows) – 端口1527 – 地址已被使用

我是Java EE 7中的新手。 我有Netbeans 7.4与GlassFish 4.0和Java EE 7在64位Windows 8.1 Pro机器。 我想启动GlassFish 4.0服务器,所以我点击Netbeans中的服务选项卡,然后在服务器选项中右键单击GlassFish Server 4.0,然后单击开始。 当我这样做时,我收到以下消息:“无法启动GlassFish Server 4.0:服务器未运行时HTTP或HTTPS侦听器端口被占用”。 我也有IIS服务器,但我停止了。 停止IIS后,我试图重新启动GlassFish,但它显示了相同的消息。 Netbeans中还有一个名为Output – Java DB Database Process的窗口,它向我展示了以下内容: Tue May 06 22:03:11 GMT-05:00 2014 : Security manager installed using the Basic server security policy. Tue May 06 22:03:11 GMT-05:00 2014 Thread[main,5,main] java.io.FileNotFoundException: D:\Users\Juan Jose\.netbeans-derby\derby.log (Access is denied) Tue […]

如何在java中编写运行使用cygwin在Windows环境内使用rSync的unix shell脚本?

我正在使用cygwin在Windows上获得unix环境。 我有一些在cygwin上运行的shell脚本来执行同步工作和其他事情。 我想通过java代码执行这些脚本。 在执行cygwin脚本的过程中,通过使用简单的echo命令在terminal上显示某些信息。我想在应用程序中显示所有信息。 我怎样才能做到这一点??