我需要一个关于如何制作返回生成图像的Web服务的最佳解决方案的建议。例如客户根据业务数据给出码ID和服务生成码的图像(这只是一个例子)。
所以我使用EJB3和JPA来实现这一目标。从数据源读取数据并将ejb作为Web服务公开是没有问题的。但我担心两件事 - 在ejb中使用AWT并在ejb中使用文件I / O.
EJB中的AWT
我已经创建了BufferedImage,我使用java.awt.Graphics2D绘制图像 - 线条,圆圈等。我没有绘制任何东西到屏幕上,只是为了BufferedImage,我愿意传回客户端。
所以问题是 - 这样做是个好主意吗?如果不是最好的解决方案?
据说“该程序通过使用AWT / Swing违反了Enterprise JavaBeans规范。”那么在这种情况下使用awt真是个坏主意吗?
此外,据说“企业bean不得使用AWT功能尝试将信息输出到显示器,或从键盘输入信息。”这是否意味着AWT可以在不同的情况下使用(像这样我没有在屏幕上显示任何内容)?
EJB中的文件I / O
我不能将i / o用于外部文件,但是那些位于我的ejb jar文件中的文件呢?只读数据是否可以存储在部署jar文件中? 例如,我有一些小图案文件,我想阅读并用于我的绘图(装饰矩形背景等) 那么将它们放在我的jar文件中并将它们仅用于阅读是否合适?
提前致谢!
答案 0 :(得分:0)
该程序违反了企业版 使用JavaBeans规范 AWT / Swing的
仅当您使用AWT / Swing与键盘/鼠标进行交互时。您正在创建缓冲图像。我没有看到任何问题。
顺便说一句,您打算将缓冲的图像传递回客户端吗? A 真实的图片,某些jpg
或png
会不会更好?
EJB中的文件I / O?
EJB 中的文件IO 被认为是错误的。但是对于你的情况,由于你正在阅读一些模式,这些实际上是资源包。您可以使用Class.getResourceAsStream或ClasLoader.getResourceAsStream来读取配置文件(例如,在jar中)