小编sub*_*odh的帖子

公共API方法应该返回InputStream还是byte []

我正在为服务的客户端设计API,该服务以字节流的形式检索数据.使用的优点是什么

InputStream getData(String param1, String param2);
Run Code Online (Sandbox Code Playgroud)

过度

byte[] getData(String param1, String param2);
Run Code Online (Sandbox Code Playgroud)

返回输入流的方法困扰我,因为

  1. 现在我的代码必须依赖外部代码来关闭输入流.我知道最好只关闭那些打开的资源,这似乎是错误的.
  2. 输入流不可重复.一旦我的代码的客户端读取流,字节就会丢失
  3. 我实现中的流实际上是通过网络(套接字).当我使用连接池并监视它以摆脱过期的连接等时,我觉得能够关闭我自己打开的资源可能会更好.

设计这个的最佳方法是什么?我甚至考虑过使用

void writeData(String param, String param, OutputStream os);
Run Code Online (Sandbox Code Playgroud)

但这使得方法名称不直观.

java api bytearray inputstream httpclient

5
推荐指数
2
解决办法
1992
查看次数

码头返回403禁止

嗨,我将我的网络应用程序从tomcat移植到Jetty.我正在使用Jetty跑步者来启动它.我使用以下命令启动Jetty:

java -jar jetty-runner.jar --port --path url-path path-to-war

但是当我尝试从浏览器浏览到时,我收到以下错误:

HTTP错误403

访问问题.原因:

Forbidden
Run Code Online (Sandbox Code Playgroud)

在日志中,我看到以下警告:

警告:oejs.SecurityHandler:没有以下身份验证器:{RoleInfo,C [*,all_auth_users]}

我试图开箱即用Jetty并没有在任何地方定制任何配置.是否需要任何其他配置才能使其工作?

java jetty

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

api ×1

bytearray ×1

httpclient ×1

inputstream ×1

jetty ×1