0

问题:

我需要从许多不同的来源接收不同类型的内容,将它们标准化,然后通过 JDO 使它们持久化。

天真的解决方案?:

为每种数据类型创建并侦听特定端口。

或者

做一堆复杂的解析

一个看似理想的解决方案:

具有自定义 URL 类型,即 FOO://myhost.tld、BAR://myhost.tld。然后,任何应用程序都可以发送到特定于自定义类型的 URL,并且主机将理想地使用 Java 的 URLConnection 和 URLStreamHandler 抽象类来创建一个将产生适当的规范化线程的工厂。或者,如果有其他方法可以检索连接 URL,我认为这就足够了

这可能吗?我查看了 API 和其他文档,无法确定是否可以将这些与 Java 服务器套接字一起使用。

我应该提一下,在某些(很多?大多数?)情况下,我不对客户端代码负责。

4

3 回答 3

1

MIME是一种相当标准的交流内容类型和处置的方式。

于 2009-02-09T21:05:13.997 回答
0

您所说的“URL 类型”是 URL 的协议部分,它所做的只是告诉客户端该 URL 上的服务器将期望它使用哪个协议。

它不是允许服务器找出调用它的 URL 的“元协议”的一部分,除非您使用包含此信息作为标头的协议——这种情况并不常见。另请注意,协议通常暗示默认端口,除非 URL 还指定了端口。

Java 的整个 URLConnection / URLStreamHandler API 是面向客户端使用的,而不是服务器,所以我不相信它可以按照你想要的方式使用。

您提出的前两个替代方案几乎是您的选择:或者为不同类型的输入使用不同的端口,或者让客户端发送一个标头来指定随后的输入类型。

于 2009-02-09T20:44:19.070 回答
0

我最终采用的解决方案是使用 java nio lib 和一个线程池,其中包含一组 ServerSocketChannels 和附加的内容处理程序

于 2009-03-07T04:45:35.097 回答