小编shi*_*ike的帖子

Java从整数中获取月份字符串

有没有更好的方法来压缩这种方法,即通过避免开关案例来降低圈复杂度?

String monthString;
        switch (month) {
            case 1:  monthString = "January";       break;
            case 2:  monthString = "February";      break;
            case 3:  monthString = "March";         break;
            case 4:  monthString = "April";         break;
            case 5:  monthString = "May";           break;
            case 6:  monthString = "June";          break;
            case 7:  monthString = "July";          break;
            case 8:  monthString = "August";        break;
            case 9:  monthString = "September";     break;
            case 10: monthString = "October";       break;
            case 11: monthString = "November";      break;
            case 12: monthString = "December";      break;
            default: monthString …
Run Code Online (Sandbox Code Playgroud)

java date

44
推荐指数
3
解决办法
9万
查看次数

e.printStackTrace()对于未知异常有什么问题

如果我在已知异常的情况下使用记录器,那么e.printStackTrace()对于未知异常有什么问题?

我总是被告知不要这样做 - 但没有理由

以下示例

try {
            dostuff();
        } catch (AException ae) {
            logger.error("ae happened");
        } catch (BException be) {
            logger.error("be happened");
        } catch (CException ce) {
            logger.error("ce happened");
        } catch (Exception e) {
            e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

java logging exception-handling

9
推荐指数
2
解决办法
4221
查看次数

同一Web应用程序中不同用户的不同会话超时

我在同一个Web应用程序中有一个要求设置2个会话超时.

普通用户60分钟,管理员用户3小时.

我被告知这是不可能的,我需要为管理员主持一个单独的Web应用程序.

有没有解决方法?

更新:感谢Bozho和Kurt的回复 - 我有一个后续问题.

session.setMaxInactiveInterval()是否覆盖通过web.xml设置的会话超时值?

java servlets web-applications java-ee

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

Spring Web服务调用的Mockito模式

我的班级有这种方法

public SomeWebServiceResponse callDownstream(SomeWebServiceRequest request)  {
    return (SomeWebServiceResponse ) super.callService(request);
}
Run Code Online (Sandbox Code Playgroud)

super方法只是调用Spring WS来进行调用 - 以简化形式

response = getWebServiceTemplate().marshalSendAndReceive(this.getBaseURL(), 
    request);
return response;
Run Code Online (Sandbox Code Playgroud)

当我编写单元测试时,它试图进行实际的Web服务调用.我不清楚如何嘲笑这个或者更确切地说我们应该嘲笑什么.

我应该从文件系统加载一个示例响应并在其中查找一些字符串 - 在这种情况下,我只测试文件加载.

实际调用是在基类中,我知道我们不能只模拟该方法.有什么指针吗?

java junit spring-ws mockito

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

在Eclipse WTP服务器中记录输出

我正在运行带有Tomcat的Eclipse 3.5(从WTP集成),我希望在txt中看到输出日志而不仅仅是控制台

无法在我的eclipse /工作区或本地Tomcat 6安装目录中找到它

任何线索如何启用这些?

我也启用org.apache.catalina.valves.RequestDumperValve了输出并在控制台上滚动,我希望在txt中看到

eclipse logging tomcat

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

声纳不会获取测试覆盖率信息

SonarQube类似,不会通过Gradle为完全覆盖的类显示每个文件的详细报告,但不会显示欺骗.

Sonar Qube版本3.7.4 Gradle版本2.1

运行gradle sonarRunner生成一个Sonar 确实拾取的文件test.exec

14:50:28.167 INFO  - Analysing D:\projname\build\jacoco\test.exec
14:50:28.265 INFO  - No information about coverage per test.
14:50:28.266 INFO  - Sensor JaCoCoSensor done: 106 ms
14:50:28.529 INFO  - Execute decorators...
14:50:29.253 INFO  - Store results in database
14:50:29.391 INFO  - ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/com.projname
Run Code Online (Sandbox Code Playgroud)

然而,在刷新上述项目时,它显示覆盖率为0%

单位测试覆盖率0.0%0.0%线覆盖率0.0%分支覆盖率

我已经设定

sonarRunner {
    sonarProperties {
        property 'sonar.jacoco.reportPath', 'D:\\projname\\build\\jacoco\\test.exec'
        property 'sonar.junit.reportsPath','$buildDir/test-results'
        property 'sonar.tests', "$buildDir/classes/test"
     }
}
Run Code Online (Sandbox Code Playgroud)

我试过\和正斜杠 - 它没有什么区别

有任何想法吗?

编辑

根据彼得的回答,删除了 …

gradle jacoco sonarqube

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

使用Eclipse 3.5安装CXF

根据http://help.eclipse.org/helios/topic/org.eclipse.jst.ws.cxf.doc.user/reference/preferences.html

可以Window > Preferences... > Web Services > CXF 2.x Preferences从顶级菜单访问CXF 2.x首 选项.

但我没有看到CXF 2.x PreferencesWeb服务下的选项,尽管我选择了JavaEE透视图.

任何想法如何启用此功能?对不起这么简单的问题.

根据http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jst.ws.jaxws.doc.user/gettingstarted/requirements,我也不能将CXF视为Project Facet . HTML

我知道这与让Eclipse了解CXF库有关,但是找不到这个教程.

eclipse installation

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

处理多个异常的通用/集中方法

这是在Java 6上

我可以有一个通用的方法来处理我的异常 - 所以不要在每个方法中执行n次

try {
    // Do something
} catch (XException e) {
    // Do something
} catch (YException e) {
    // Do something
} catch (ZException e) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

我有

try {
        // Do something
    } catch (Exception e) {
        handleAll (e);
    }
Run Code Online (Sandbox Code Playgroud)

和方法handleAll(e)

if e.instanceOf(XException)

else if e.instanceOf(YException)

else if e.instanceOf(ZException)
Run Code Online (Sandbox Code Playgroud)

第二种方法有什么问题吗?

更新:

我最初的问题是关于"集中处理"在一个地方对于检查和运行时异常.答案指出我应该避免使用instanceof().

@ aioobe的想法看起来很整洁.对这种方法有任何负面意见吗?

java exception-handling

5
推荐指数
1
解决办法
1702
查看次数

哪些网站使用Apache OFBiz?

我正在为演示文稿收集一些数据.

有谁知道Apache Ofbiz上托管的网站或此电子商务软件包的用户在https://cwiki.apache.org/OFBIZ/apache-ofbiz-user-list.html列表之外

ofbiz

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

在独立的Java应用程序中使用相同的log4j logger

我有一些代码是一个包含30多个类的独立Java应用程序.

其中大多数都继承自其他一些基类.

每个类都有这个方法来获取和使用log4j记录器

public static Logger getLogger() {
    if (logger != null) return logger;
    try {
        PropertyUtil propUtil = PropertyUtil.getInstance("app-log.properties");
        if (propUtil != null && propUtil.getProperties() != null)
            PropertyConfigurator.configure(propUtil.getProperties ());
        logger = Logger.getLogger(ExtractData.class);
        return logger;
    } catch (Exception exception) {
        exception.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

A)我的问题是这是否应该重构为一些初始化一次并被所有类使用的常见记录器?这是一种更好的做法吗?

B)如果是,怎么办?我怎样才能通过记录器?

C)这实际上是被在代码中使用不作为Logger.debug(),但getLogger().debug().这在绩效方面有何影响?

java log4j

3
推荐指数
1
解决办法
6047
查看次数

这种Java方法的返回类型是什么?

我们正在实施一个具有战略模式的系统.

某些特定方法的调用者需要数据的Hashmap,而在某些情况下,它将是用户定义的DTO.有些人需要两者.

我们如何决定使用哪种返回类型,而不是包含Hashmap和DTO的Arraylist?还有更适合的吗?

例:

一些调用者只需要2个字符串并且更喜欢Hashmap.

对同一API的其他一些调用者需要12个适合放入DTO的值.第一个调用者不需要DTO中的所有元素.

第三个调用者需要所有14个值,因此需要两个结构.

java

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

罐子包装和分配

我们按照预期在包中布置了一些通用代码.其中一些包是 handler, processor, util, registration等等

这里的常见意味着这些将在多个彼此无关的Java/Java EE项目中重复使用.

问题在于包装的分发.

每个包都包含不同的功能单元,但放在一起,它们是API.

我们应该将个别功能捆绑到JAR中,最后说8到10个罐子.例如:处理程序jar,注册jar等

要么

我们应该采用最小公分母方法,即5个强制包的基础构建到一个罐子里.任何其他人都需要该罐作为基础,并可以选择附加罐.

我们的构建系统是Ant + Ivy,这些依赖项将在编译和构建时解决.

java jar java-ee

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

从JVM崩溃中恢复

我正在开发基于swing的java应用程序,它通过加载DLL来使用第三方库函数.

DLL调用中的一些功能exit(1)正在关闭整个Java应用程序.是否有任何解决方案可以让我的JVM在遇到时保持活力exit(1).我无权访问C源代码.

java

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