小编gee*_*rt3的帖子

隐藏IDE调试器中的堆栈帧(例如Java9 StackWalker)

Java9的新StackWalker功能让我意识到,如果可以将Eclipse(最好是IntelliJ)配置为使用可以修改IDE调试器中正常调用堆栈视图的自定义StackWalker,那将会很棒.

我想要做的是在调试JavaEE程序时隐藏例如特定的技术堆栈条目,但在许多第三方支持库中也是如此.一般情况下,我希望选项省略一些通常不感兴趣的特定(可自定义)堆栈帧,例如基于(通配符)包或类名.理想情况下,"步入"也会自动跳过这些帧并逐步进入"未抑制"堆栈帧.

有人知道Eclipse或IntelliJ中是否已有这样的功能.如果它没有专门使用StackWalker,但在概念上类似的东西是没关系的.或者您知道是否在任一IDE中计划了这样的功能.

java eclipse eclipse-plugin intellij-idea

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

Eclipse为可访问代码(变体)提供死代码警告

我有以下代码:

public String myMethod(String keyValue) {
    Map<String, Integer> keyValueToRowIndex = ...
    Integer rowIndex = (keyValue == null) ? 0 : keyValueToRowIndex.get(keyValue);
    if (rowIndex == null)
      return null;
    ...
}
Run Code Online (Sandbox Code Playgroud)

Eclipse给出了"死代码"警告return null;.删除测试keyValue == null也删除了警告,但我没有看到额外的测试如何使return语句死代码.显然,如果地图中没有包含某些非null的条目keyValue,那么rowIndex仍然可以为null.或者我在这里遗漏了什么?

我已经看到了类似的Eclipse问题(例如这里),但这个问题似乎是一个不同的,更简单的问题.

java eclipse dead-code

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

注释@EJB的name,beanName和mappedName属性之间有什么区别?

是什么区别name,beanNamemappedName属性标注@EJB在EJB3.0?
我在网上发现了这个链接 - http://www.tutorialspoint.com/ejb/ejb_annotations.htm

  • name-用于指定的名称将用于查找引用bean环境.
  • beanName-用于提供名字引用bean.
  • mappedName-用于指定JNDI名称引用bean.

如何在名称namebeanName属性有什么不同?

jboss java-ee ejb-3.0

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

在运行时获取成员字段的源顺序的保证方法?

我正在寻找一种方法来检索(在运行时)源顺序中的类的字段,以便我可以执行自己的"初始化处理",这将基于声明的顺序.我知道Javadoc Class.getDeclaredFields()明确声明没有订单得到保证.

关于SO的一些答案指向Javassist但我没有找到任何证据表明javassist在没有行号信息的情况下有任何此类保证.

然而,这个"源顺序"由Java编译器使用,因为此代码无法编译:

private int a = 10 * b;
private int b = 5;
Run Code Online (Sandbox Code Playgroud)

显然,b目前尚不知道a正在宣布的价值.

这个初始化顺序也必须存在于字节码中,因为在运行时初始化必须以相同的顺序发生(被授予,这只是这些边缘情况的要求:-(但这使我认为自然的事情是存储.class文件中的源顺序.

问题:

  1. JVM/Byte Code如何以声明的顺序初始化成员字段,这些信息是否可以用于重建字段的源顺序?

  2. 有没有其他保证的方法来实现同样的目标.像Javassist这样的第三方工具可以,但必须"保证"或至少"在特定条件下保证".

  3. 是否有任何特定的Java实现可以保证顺序Class.getDeclaredFields()(可能在特定条件下(哪些))?

为了您的信息,我需要源订单来重建订单很重要的遗留语言的行为.我不喜欢明确添加顺序,例如通过添加数组或注释,因为我希望尽可能保持源的可读性.

- 编辑 - 一个重要的注意事项可能是我需要"遍历"的字段都将被注释,例如@MyComplexType(len = 4).父类将需要此元信息来构造一种内存映射.然而,我不想用订购信息来混淆这个注释,因为我发现这会妨碍可读性和可维护性.

java reflection jvm

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

Log4j2 系统属性写入文件

我使用以下 log4j2 配置:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5.5level %-60.60logger - %msg%n" />
            <Filters>
                <ThresholdFilter level="info" onMatch="ACCEPT"
                    onMismatch="DENY" />
            </Filters>
        </Console>
        <RollingFile name="RollingFile"
            fileName="${sys:log.file}"
            filePattern="${sys:log.parent.path}\$${date:yyyy-MM}\${sys:log.file.name}-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>
                    %d{yyy-MM-dd HH:mm:ss.SSS} [%30.30t]%-10.10level%-60.60logger - %msg%n
                </Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="60 MB" />
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="RollingFile" />
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

当文件位置作为命令行参数传递时,系统参数被设置,然后函数 reconfigureLog() 设置属性

public static void reconfigureLog(String logPath)
    {
        File logFile = new File(logPath);
        System.setProperty("log.file", logPath);
        System.setProperty("log.parent.path", logFile.getParent()); …
Run Code Online (Sandbox Code Playgroud)

java log4j2

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

Atomikos: exception when transaction contains more than one persist

I'm experimenting with standalone JPA and JTA/XA transaction management provided by Atomikos.

My simple unit test persists 3 records, wrapped in a JTA UserTransaction.

When using H2 as backing database, the test works fine.

When using MySQL as the backing database, the second persist throws this exception:

com.mysql.jdbc.jdbc2.optional.MysqlXAException: XAER_INVAL: Invalid arguments (or unsupported command)

(see full stack trace and logging below). The log file gives more detail:

WARNING: XA resource 'jdbc/mysqlDs': resume for XID '3139322E3136382E31342E3131372E746D30303030323030303831:3139322E3136382E31342E3131372E746D32' raised -5: invalid arguments were …

mysql jpa jta xa atomikos

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

带有输入流和输入流长度的 JAVA AWS S3 分段上传未知


如果内容长度未知,则 AmazonS3Client 和 TransferManager 将内容缓存在内存中,导致内存不足异常。
所以我想使用分段上传(低级 API)。但是我没有找到使用输入流上传的方法(示例在文件中)。
我尝试通过输入流但没有结果。

我的代码 ::(在 Vaadin 上传接收器中)

@Override
public OutputStream receiveUpload(final String filename, String mimeType) {
    this.fileName=filename;
    PipedOutputStream pos=null;
    try {
        pos= new PipedOutputStream();
        final InputStream is = new PipedInputStream(pos);
        new Thread(){
            @Override
            public void run(){
                try{
                    List<PartETag> partETags = new ArrayList<PartETag>();
                    InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest(
                                                                        bucketName, filename);
                    InitiateMultipartUploadResult initResponse = 
                                                  s3.initiateMultipartUpload(initRequest);
                    long partSize = 5 * 1024 * 1024; // Set part size to 5 MB.
                    int size = 1024;
                    byte[] buffer = …
Run Code Online (Sandbox Code Playgroud)

java upload amazon-s3 vaadin

5
推荐指数
0
解决办法
2507
查看次数

Calendar.getTime()中奇怪的IllegalArgumentException

这个完美简单的测试失败了IllegalArgumentException("HOUR_OF_DAY 2 -> 3"),我没有理由.您可以将任何小时,天,月,年更改为任何其他值,并且测试成功.在我测试的任何JRE中都失败了.似乎是GregorgianCalendar实现中的内部问题?还是我错过了一些明显的东西?

import java.util.Calendar;

public class DateTest extends TestCase
{
    /** test if 2011/03/27 02:30:00 converts to a valid date.
     * shouldn't throw any exception, however this throws 
     * IllegalArgumentException("HOUR_OF_DAY 2 -> 3)
     */
    @Test
    public void testDate()
    {
        Calendar cal = Calendar.getInstance();
        cal.setLenient(false);
        cal.clear();
        cal.set(Calendar.SECOND, 00);
        cal.set(Calendar.MINUTE, 30);
        cal.set(Calendar.HOUR_OF_DAY, 02);
        cal.set(Calendar.DAY_OF_MONTH, 27);
        cal.set(Calendar.MONTH, 03 - 1); // needs to be 0-based
        cal.set(Calendar.YEAR, 2011);
        cal.getTime();
    }
}
Run Code Online (Sandbox Code Playgroud)

java calendar

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

Excel公式找到差异的总和

我有2列的excel表:基线,当前.
基准价格和当前价格是实际价格.
例如:

base | curr
-----|-----
10   | 15
8    | 8
9    | 5
1    | 2
-----|-----
27   | 28
Run Code Online (Sandbox Code Playgroud)

现在,我需要差异,如果更高的当前价格..在我们的例子中,第一行和最后一行有更大的当前价格,所以我需要公式返回6(= 15-10 + 2-1).

有没有办法在excel公式中做到这一点?我需要遍历所有行并标记curr> base行,然后为每个结果执行求和(curr-base).

我用sumproduct和其他函数(sumifs等)尝试了它没有帮助...

任何想法如何解决这个问题?

谢谢!

excel excel-formula

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

如何在 Java Web 应用程序中设置区域设置?

我从 UI 传递语言代码和国家/地区代码来创建Locale对象。如何设置此 Locale 对象HttpServletRequest,以便在 Web 应用程序中的任何位置都可以使用此 Locale 对象HttpServletRequest.getLocale()

java locale servlets setlocale

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