小编VDe*_*Dev的帖子

何时可以捕获RuntimeException

在最近的一个项目中,我建议在测试工具代码中捕获RuntimeException并记录它.代码处理来自数据库的一系列输入,我不希望测试因任何一个输入失败而停止(Null值,Illegal arguments等).不用说,我的建议引发了激烈的讨论.

捕获任何类型的RuntimeException都可以接受吗?如果是,那么可以捕获RuntimeExceptions的其他方案是什么?

java exception-handling

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

Jersey异常:SEVERE:Java类的消息体阅读器

我有一个基于泽西岛的Rest WS输出JSON.我正在实现一个Jersey客户端来调用WS并使用JSON响应.我的客户端代码如下

WebResource r = restClient.resource(UriBuilder.fromUri("http://localhost/").port(8080).build());
String resp = r.path("/user").accept(MediaType.APPLICATION_JSON).get(String.class);
User[] users = r.path("/user").accept(MediaType.APPLICATION_JSON).get(User[].class);

第二行正确输出JSON字符串响应,但第3行将JSON编组到POJO没有发生,我得到以下异常堆栈跟踪

SEVERE: A message body reader for Java class [Lorg.shoppingsite.model.entity.jpa.User;, and Java type class [Lorg.shoppingsite.model.entity.jpa.User;, and MIME media type application/json was not found
Dec 21, 2011 11:32:01 AM com.sun.jersey.api.client.ClientResponse getEntity
SEVERE: The registered message body readers compatible with the MIME media type are:
*/* ->
  com.sun.jersey.core.impl.provider.entity.FormProvider
  com.sun.jersey.core.impl.provider.entity.StringProvider
  com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
  com.sun.jersey.core.impl.provider.entity.FileProvider
  com.sun.jersey.core.impl.provider.entity.InputStreamProvider
  com.sun.jersey.core.impl.provider.entity.DataSourceProvider
  com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
  com.sun.jersey.core.impl.provider.entity.ReaderProvider
  com.sun.jersey.core.impl.provider.entity.DocumentProvider
  com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
  com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.EntityHolderReader

我的请求中有正确​​的MIME类型.我的POJO已使用XMLRootElement注释.我错过了什么

谢谢

java rest json jersey

35
推荐指数
5
解决办法
9万
查看次数

我什么时候应该创建一个新的Exception类

我注意到许多Java异常类仅在类的名称上有所不同,并且不添加任何新功能.例如,大多数例外似乎都会覆盖Exception() or Exception(String message).这违背了继承的原则,即: - 继承以添加功能.

创建新的Exception类有什么好的理由?

java exception

20
推荐指数
3
解决办法
2216
查看次数

无法获取要调用的自定义上下文处理器

我正在尝试创建一个自定义上下文处理器,它将为登录用户呈现菜单项列表.我做了以下事情:


在我的settings.py中,我有

TEMPLATE_CONTEXT_PROCESSOR = (
    'django.contrib.auth.context_processors.auth',
    'mysite.accounts.context_processors.user_menu',
)

在帐户子模块context_processors.py下,我现在有以下内容:

def user_menu(request):
    return {'user_menu':'Hello World'}

在我的模板页面上,我有以下内容:

{% if user.is_authenticated %}
Menu
{{user_menu}}
{% endif %}

调用视图如下:

def profile(request):
    return render_to_response('accounts/profile.html',context_instance=RequestContext(request))

但是我无法{{user_menu}}在页面上呈现任何内容,我知道用户已经过身份验证,因为模板的其他部分具有类似的检查正确呈现.我在这里错过了一些东西.请帮忙谢谢

编辑:谢谢Ben,Daniel,我已修复了(S)TEMPLATE_CONTEXT_PROCESSOR,但Django现在无法解析模块,我得到以下消息

Error importing request processor module django.contrib.auth.context_processors: "No module named context_processors"

更新:我通过改变路径来修复它,django.core.context_processors.auth似乎已经移动了模块

python django django-templates django-context

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

OSGI缺少需求错误

我是OSGI的新手,我正在试图弄清楚如何解决下面的错误

org.osgi.framework.BundleException:bundle org.foo.serviceBundle中未解决的约束[253]:无法解析253.0:缺少需求[253.0]包; (&(包= org.slf4j)(版本> = 1.6.0)(!(版本> = 2.0.0)))

我使用maven原型生成一个包,并在我的Activator类中添加了一些简单的slf4j日志.我也使用maven bundle插件如下:

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.2.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-Activator>org.shoppingsite.Activator</Bundle-Activator>
                </instructions>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

我尝试了其他组合,我得到一个不可解析的包或另一个.我正在尝试将该软件包部署到GlassFish appserver上.任何帮助将不胜感激

谢谢

java osgi glassfish-3 apache-felix

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

从Heroku配置的环境变量触发Maven配置文件

我试图在我的maven pom中激活一个配置文件,如下所示: -

    <profile>
        <id>test</id>
        </properties>
        <activation>
            <property>
                <name>env.SITE</name>
                <value>test</value>
            </property>
        </activation>
    </profile>
Run Code Online (Sandbox Code Playgroud)

现在我正在配置heroku以使环境变量SITE如下: -

heroku config:添加SITE = test.

我希望环境变量在推送代码时触发配置文件.然而,这并没有发生.

heroku maven

3
推荐指数
2
解决办法
1268
查看次数

在循环中将时间增加一秒

这是一个简单的测试:我试图在循环中将当前时间戳增加1秒.输出不是我所期望的.

public class TimeTest {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        for (int i = 0; i < 10; i++) {
            cal.add(Calendar.SECOND, i);
            System.out.println("Updated  = " + cal.getTime());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

而不是整齐1秒的增量,我从5秒到1秒之间的任何地方获得增量.

Updated  = Mon May 13 15:12:45 PDT 2013
Updated  = Mon May 13 15:12:46 PDT 2013
Updated  = Mon May 13 15:12:48 PDT 2013
Updated  = Mon May 13 15:12:51 PDT 2013
Updated  = Mon May 13 15:12:55 PDT 2013
Updated  = Mon May …
Run Code Online (Sandbox Code Playgroud)

java time datetime

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