一个侦听套接字请求的EAR(Java EE)应用程序

我想构建一个Java EE应用程序(EAR),它不仅提供Web服务(WAR)或直接JMS请求(EJB),而且我还想接受套接字请求(例如UDP数据包)。 我尝试用java.net.DatagramSocket编写一个监听器,让它作为单独的进程运行,并将请求重定向到我的EAR应用程序。 问题是..如何才能无缝地将这样的套接字侦听器构建到我的Java EE(EAR)应用程序中? 谢谢。

Java服务器端发送带恢复支持的文件?

我试图让我的java服务器传输一个Web浏览器可以下载的文件。 但是,我想要浏览器,如果他们暂停并恢复文件传输工作,而不是重新开始下载。 有谁知道服务器端的java代码来解决这个问题?

@AttributeOverride是什么意思?

我现在正在(回到)加快EJB的速度,而当我离开时它发生了巨大的变化(到目前为止更好)。 然而,我遇到了一个我正在努力的概念,并希望更好地理解,因为它似乎在我们(我工作的地方,而不是我和我头脑中的所有声音)代码中使用了相当多的代码。 这是我在一本书中找到的例子。 它是显示如何使用@EmbeddedId注释的示例的一部分: @Entity public class Employee implements java.io.Serializable { @EmbeddedId @AttributeOverrides({ @AttributeOverride(name=”lastName”, column=@Column(name=”LAST_NAME”), @AttributeOverride(name=”ssn”, column=@Column(name=”SSN”)) }) private EmbeddedEmployeePK pk; … } EmbeddedEmployeePK类是一个相当简单的@Embeddable类,它定义了一对@Columns : lastName和ssn 。 哦,我从Rubinger&Burke的O’Reilly的Enterprise JavaBeans 3.1中提取了这个例子。 在此先感谢您提供的任何帮助。

有没有办法使用JPA注释和Hibernate动态选择@GeneratedValue策略?

我正在研究一种支持多种数据库引擎(Oracle,MSSQL,MySQL)的产品。 对于Oracle,我更倾向于使用Sequences而不是Sequence表来避免在高容量安装上出现潜在的并发和锁定问题,但其他数据库引擎不支持序列。 此外,我更喜欢每个表使用一个序列而不是全局序列(例如hibernate_sequence ),因此@GeneratedValue(strategy = GenerationType.AUTO)将不起作用。 有没有办法在运行时动态选择策略?

将进程重定向到stdout

我想在Groovy程序中执行foo.bat并将生成的进程’输出重定向到stdout。 Java或Groovy代码示例都可以。 foo.bat可能需要几分钟才能运行并产生大量输出,因此我希望在生成后立即看到输出,而不是必须等到进程完成后才能立即看到所有输出。

Java:将程序输出打印到物理打印机

我是一个相对较新的程序员,所以这可能是一个非常简单的问题,但它让我有点难过.. 我正在尝试将Java GUI的最终输出打印到打印机。 现在,在我的GUI中,我有它,所以当你点击打印时,弹出窗口会显示可用打印机列表,并根据你选择的打印机打印到该打印机。 但事实并非如此。 我通过在互联网上搜索此问题的解决方案获得了大部分代码,并找到了一些有希望的代码。 但是,它打印出一个文件。 所以我只是在我的方法中做的就是首先将输出写入文件,以便我可以使用相同的方法。 方法之前的一些事情: 没有抛出任何错误或exception。 我每次尝试创建的文件始终存在,并且具有正确的文本。 打印到IS的打印机正在接收打印作业,它甚至认为它已经完成了。 如果我不得不猜测,我会认为我可能正在将输出写入File,因为打印机不会除外但不会告诉我。 无论如何,这段代码中有相当一部分我没有真正理解,所以请让我知道你能找到什么。 这是我的代码: private void printToPrinter() { File output = new File(“PrintFile.txt”); output.setWritable(true); //Will become the user-selected printer. Object selection = null; try { BufferedWriter out = new BufferedWriter(new FileWriter(output)); out.write(calculationTextArea.getText() + “\n” + specificTextArea.getText()); out.close(); } catch (java.io.IOException e) { System.out.println(“Unable to […]

对未签名的Java小程序可以做什么的限制?

我正在尝试编译一个完整的列表,列出对未签名的Java小程序的所有限制 (定义为普通Java应用程序可以执行的操作,但未签名的Java小程序不能)。 这是我到目前为止编译的列表: 一个未签名的Java小程序…… 无法访问本地文件系统。 无法访问系统剪贴板。 无法启动打印作业。 无法连接或从任何第三方服务器(applet源自的服务器以外的任何服务器)检索资源。 无法使用多播套接字。 无法创建或注册SocketImplFactory , URLStreamHandlerFactory或ContentHandlerFactory 。 无法侦听传入的套接字连接。 无法收听数据报。 无法访问某些系统属性(java.class.path,java.home,user.dir,user.home,user.name)。 无法创建或注册SecurityManager对象。 无法使用Runtime或System的load()或loadLibrary()方法动态加载本机代码库。 无法通过调用任何Runtime.exec()方法生成新进程。 无法在运行不受信任代码的线程组之外创建或访问线程或线程组。 无法在java.* , sun.*和netscape.*定义类。 无法从sun.*包显式加载类。 无法通过调用System.exit()或Runtime.exit()退出Java运行时。 无法访问系统事件队列。 无法使用java.lang.Classreflection方法获取有关类的非公共成员的信息,除非该类是从与不受信任的代码相同的主机加载的。 无法以任何方式操纵安全身份(java.security)。 无法设置或读取安全属性(java.security)。 无法列出,查找,插入或删除安全提供程序(java.security)。 问题:是否有任何限制缺失? 如果是这样,请清楚说明您认为列表中缺少的限制。

是否有一种优雅的方式来处理块中的流?

我的确切场景是批量插入数据库,所以我想累积DOM对象然后每1000个,刷新它们。 我通过将代码放入累加器来检测丰满度然后刷新来实现它,但这似乎是错误的 – 刷新控件应该来自调用者。 我可以将流转换为List然后以迭代方式使用subList,但这似乎也很笨拙。 它有一个简洁的方法来采取行动每n个元素然后继续流,而只处理流一次?

Java中的flyweight字符串何时有用?

我理解java的字符串实习的基本思想 ,但我想弄清楚它发生在哪些情况,以及我需要做哪些自己的轻量级。 有点相关: Java字符串:“String s = new String(”傻“);” Java中String flyweight实现的最佳替代方法从未得到过回答 他们一起告诉我, String s = “foo”是好的, String s = new String(“foo”)很糟糕,但没有提到任何其他情况。 特别是,如果我解析一个有很多重复值的文件(比如一个csv),Java的字符串实习会覆盖我还是我需要自己做一些事情? 关于字符串实习是否适用于我的其他问题 ,我得到了相互矛盾的建议 完整的答案有几个片段,所以我在这里总结一下: 默认情况下,java仅实现编译时已知的字符串。 String.intern(String)可以在运行时使用,但它执行得不是很好,所以它只适用于你确定会重复很多次数较少的String 。 对于较大的Strings系列,它是拯救的番石榴(参见ColinD的答案)。

使用Apache POI将doc转换为pdf

我正在尝试使用Apache POI将doc转换为pdf,但生成的pdf文档只包含文本,它没有像图像,表格对齐等任何格式。 如何将doc转换为pdf,并具有表格,图像,对齐等所有格式? 这是我的代码: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class demo { public static void main(String[] args) { POIFSFileSystem fs = null; Document document = new Document(); try { System.out.println(“Starting the test”); fs = new […]