小编Win*_*Win的帖子

为什么要使用JAX-RS/Jersey?

对不起,这个问题听起来很愚蠢,但在使用Jersey开发我的一些RESTful服务后,我问自己一个问题 - 如果REST只是一个架构,而不是像SOAP这样的协议,为什么我们需要像JAX-RS这样的规范?

我实际上搜索了诸如"通过HTTP在servlet和RESTful服务之间有什么区别"之类的问题,并总结了社区的答案,我得到了:

  1. RESTful服务开发(在Jersey上)是一种体系结构,它本质上使用servlet.
  2. 像Jersey这样的JAX-RS兼容工具提供了简单的编组 - 解组XML/JSON数据,帮助开发人员.
  3. REST帮助我们以比普通servlet更高效的方式使用GET/POST/PUT/DELETE.

根据这些答案,我想如果我编写一个使用JAXB的servlet(用于处理自动序列化),并且我在servlet代码中有效地使用GET/POST/PUT/DELETE,我不使用像Jersey这样的工具,因此JAX-RS.

我知道通过这个声明我非常错误,请纠正我.

PS:当我不得不在PHP中开发一些RESTful服务时,实际上出现了这种疑问.在继续浏览一些RESTful PHP代码之后,我意识到它们只是相同的旧PHP脚本,并且有一些辅助方法来处理XML/JSON.

rest jax-rs jersey

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

Java SSLException:证书中的主机名不匹配

我一直在使用以下代码连接到谷歌的服务之一.这段代码在我的本地机器上工作正常:

HttpClient client=new DefaultHttpClient();
HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin");
post.setEntity(new UrlEncodedFormEntity(myData));
HttpResponse response = client.execute(post);
Run Code Online (Sandbox Code Playgroud)

我将此代码放在生产环境中,该环境已阻止Google.com.根据要求,他们允许我访问IP:74.125.236.52(这是Google的IP之一),允许与Google服务器进行通信.我编辑了我的hosts文件也添加了这个条目.

我仍然无法访问URL,我想知道为什么.所以我用上面的代码替换了:

HttpPost post = new HttpPost("https://74.125.236.52/accounts/ClientLogin");
Run Code Online (Sandbox Code Playgroud)

现在我收到这样的错误:

javax.net.ssl.SSLException:证书中的主机名不匹配:<74.125.236.52>!= <www.google.com>

我想这是因为Google有多个IP.我不能让网络管理员允许我访问所有这些IP - 我甚至可能没有得到这整个列表.

我现在应该怎么做 ?Java级别有解决方法吗?或者它完全掌握在网络人手中?

java ssl https

39
推荐指数
6
解决办法
15万
查看次数

媒体流基础知识 - HTTP与RTMP

我对媒体流非常陌生,我有一些基本的疑虑要明确:

  1. 据我所知,HTTP流(通过Apache)和RTMP流(通过Red5)之间的区别在于流媒体服务器提供缓冲和提前控制,如搜索等.我是对的吗?

  2. 我可以只传输来自RT5服务器(如Red5)的Flash视频吗?如果我必须传输不同格式的文件,我是否必须使用HTTP流?我可以使用像xuggler这样的工具来动态转码文件并根据Red5服务器的请求发送吗?

我提出了所有这些疑虑,因为我必须为所有移动客户端提供流媒体 - iPhone,黑莓,Android - iPhone不支持闪存,所以去Red5是个好主意吗?

streaming red5 rtmp xuggle

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

使用Application.onConfigurationChanged

编辑:我知道如何处理配置更改; 此查询正在使用"应用程序"类执行此任务.

我可以看到许多示例,其中Application类被用作维护状态变量的"全局".但我很好奇是知道使用我一直认为与个人活动生命周期相关的方法...比如onConfigurationChanged()和registerComponentCallbacks().

我找不到任何关于如何使用这些方法的例子.我请求一些用例/模式,其中覆盖这些方法会有所帮助.

谢谢 !

android

8
推荐指数
1
解决办法
1348
查看次数

ConnectionTimeoutException与SSLException之间的区别,消息"Connection timed out"

在我的Android代码上(使用Apache HTTP Client)我已经设置了以下参数:

HttpConnectionParams.setConnectionTimeout(params, 30 * SECOND_IN_MILLIS);
HttpConnectionParams.setSoTimeout(params, 30 * SECOND_IN_MILLIS);
Run Code Online (Sandbox Code Playgroud)

我正在连接到HTTPS网络服务.在慢速网络上,我得到一个ConnectionTimeoutException预期的30秒(然后我重试); 但是有"很少"的情况(没有我能观察到的模式),我得到以下任何一种:

javax.net.ssl.SSLException:读取错误:ssl = 0xe71160:系统调用期间的I/O错误,连接超时javax.net.ssl.SSLException:写入错误:ssl = 0xe71160:系统调用期间的I/O错误,Broken管

我从SO获得了这个代码,它仍在测试中:

registry.register(new Scheme("https", 
    SSLCertificateSocketFactory.getHttpSocketFactory(30 * SECOND_IN_MILLIS, null), 443));
Run Code Online (Sandbox Code Playgroud)

我可以理解连接建立超时和套接字超时 - 我的查询是否真的需要SSL的第3次超时?目的与SO_TIMEOUT有何不同?

PS:这些例外情况似乎是在读取/写入数据时出现的 - 这应该导致数据丢失 - 但我也观察不到.

java https android http apache-httpclient-4.x

6
推荐指数
1
解决办法
2929
查看次数

在java中并发访问Singleton

我有一个sinlgeton对象,它持有一个方法,巫婆不同步.单个用户可以一次访问单例 - 如果多个客户端访问该对象会发生什么?是否会以先来先服务的方式提供对象引用...也就是说,一个客户端是否必须等待第一个完成对象,或者它将在内存中被赋予相同的对象引用?

我对单例中未同步的方法感到奇怪.如果2个客户端使用不同的参数调用Singleton.method(param) - 它们不会为彼此创建问题吗?

java singleton design-patterns

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

"这个"里面有一个javascript函数

这是一个新手查询.我经历了几个类似的帖子,但他们没有给我足够的帮助.这篇文章有两个查询,但由于它们的根似乎是相同的,因此我将它放在一起.

我遇到了以下代码段:

var Server = module.exports.Server = function Server(listener) {
  if (!(this instanceof Server)) return new Server(listener);
  //other code
}

module.exports.createServer = function(listener) {
  return new Server(listener);
};
Run Code Online (Sandbox Code Playgroud)

我无法理解使用 if (!(this instanceof Server)) ;何时可以在此处指向服务器?

我尝试对此进行快速测试:

var createTest = function(){
    console.log(this.toString());
    return new Test();
};

var Test = function Test(){
    console.log(this instanceof Test);
    console.log(this.toString());
    if (!(this instanceof Test)) 
    {
        return new Test();
    }
}

var tester = createTest();
Run Code Online (Sandbox Code Playgroud)

哪个输出:

[object global]
true
[object Object]
Run Code Online (Sandbox Code Playgroud)

这进一步困扰了我为什么this.toString打印[object Object] - 不应该是[object Test]?

谢谢 …

javascript

2
推荐指数
1
解决办法
99
查看次数

Java中的注释概念

引用此链接:

一些开发人员认为Java编译器理解标记并相应地工作.这个不对.标签实际上对Java编译器或运行时本身没有任何意义.有些工具可以解释这些标签

.

如果注释中包含的信息只是元数据,那么如果我错误地注释,为什么我的代码不能编译?那个特别的注释应该被忽略吧?

编辑:

仅提供一个示例... Jersey上的简单JAX-RS Web服务使用如下注释:

@Path("mypath")
Run Code Online (Sandbox Code Playgroud)

现在,如果我将其更改为:

@Paths("mypath")
Run Code Online (Sandbox Code Playgroud)

要么

@Path(123)
Run Code Online (Sandbox Code Playgroud)

它不应该阻止我根据上面的链接编译代码...

java annotations

0
推荐指数
1
解决办法
284
查看次数