用于图像生成的 J2EE EJB3 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 文件中并仅用于读取是否合适?
提前致谢!
I need an advice for the best solution on how to make a web service which returns a generated image. For instance client gives yard id and service depending on business data generates the image of the yard (that's just an example).
So I am using EJB3 and JPA to accomplish this. There's no problem reading data from datasource and exposing ejb as a web service. But I am worried about two things - using AWT in ejb and file I/O in ejb.
AWT in EJB?
I've created BufferedImage and I am using java.awt.Graphics2D to draw the image - lines, circles etc.. I am not drawing anything to screen, just to BufferedImage which I am willing to pass back to client.
So the question is - is this a good idea to do that? If not what would be the best solution?
It is said that "The program violates the Enterprise JavaBeans specification by using AWT/Swing." So is it really bad idea to use awt in this situation?
Also it is said that "An enterprise bean must not use the AWT functionality to attempt to output information to a display, or to input information from a keyboard." Does that mean AWT could be used in different situations (like this as I"m not displaying anything on screen)?File I/O in EJB?
I can't use i/o for external files, but what about files that ar located in my ejb jar file? Is it possible for read only data to be stored in deployment jar file?
For instance I have small pattern files which I want to read and use for my drawing (decorating rectangle background etc.).
So would it be appropriate to put them in my jar file and use them only for reading?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
仅当您使用 AWT/Swing 与键盘/鼠标交互时才有效。您正在创建一个缓冲图像。我认为这没有任何问题。
顺便说一句,您打算将缓冲的图像传递回客户端吗? 真实图像、一些
jpg
或png
不是更好吗?EJB 中的文件 IO 被认为是不好的。但对于您的情况,由于您正在阅读一些模式,因此这些实际上是资源包。您可以使用 Class.getResourceAsStream 或 ClasLoader.getResourceAsStream 读取配置文件(例如,位于 jar 中)
This is only when you are using AWT/Swing for interacting with the Keyboard/mouse. You are creating a buffered image. I do not see any problems with this.
BTW, are you planning to pass on the buffered image back to the client? Wouldn't A real image, some
jpg
orpng
be better?File IO in EJB is considered bad. But for your situation, since you are reading some patterns, these are actually resource bundles. You can use Class.getResourceAsStream or ClasLoader.getResourceAsStream to read the configuration files (which are in a jar, for instance)