J2EE和外部URL处理程序,对设计有疑问

时间:2011-06-14 14:56:34

标签: url java-ee glassfish

我正在Glassfish 3.1上开发J2EE应用程序,它将使用一个严重依赖URL的外部库。 URL将使用自定义协议(例如db:123,其中123是数据库中记录的ID。我对如何实现URL协议处理程序(及其URLConnection实现)有疑问,因为此协议处理程序将使用EJB从数据库中获取数据。

db协议处理程序需要在JVM启动时通过-Djava.protocol.handler.pkgs标志进行全局注册。 (我无法在Glassfish中找到更好的方法。)无论如何,因为它是在JVM启动时注册的,所以它不知道在打开URL流时它可能调用的任何EJB。所以我所做的是创建一个可以注册数据库处理程序的单例注册表类。每当请求流时,URLConnection都会使用此注册表(它将在注册表中搜索数据库处理程序并使用它来获取数据)。

然后,EJB将在@PostConstruct方法中将自身注册为数据库处理程序。这样,只要使用db:XXX URL,就会间接调用EJB来获取数据。

不知怎的,我觉得这个设计有点脏,但由于自定义URL处理程序,我非常有限。如果您有任何建议或提示可以给我,那就太棒了。

0 个答案:

没有答案