小编use*_*611的帖子

EclipseLink和log4j:如何使用它们

我正在使用Eclipselink JPA提供程序,并注意到它只在控制台中写入.我配置了控制台和文件追加程序,但EclipseLink日志条目(例如SQL查询)仅出现在控制台日志中.怎么解决?

这是我的log4j配置:

log4j.rootLogger=ALL, FILE, CONSOLE

log4j.logger.uk.co.mycompany=DEBUG

log4j.logger.org.eclipse.persistence=ALL

log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.FILE.File=${catalina.base}/logs/application.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{HH:mm:ss, SSS} %t [%p] %c{1} - %m%n

 # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%p] %m%ne
Run Code Online (Sandbox Code Playgroud)

在persistence.xml中:

...
    <properties>
        <property name="eclipselink.logging.level" value="FINE"/>           
    </properties>
Run Code Online (Sandbox Code Playgroud)

java log4j eclipselink

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

gsip压缩jsf的东西

我有一个运行在tomcat 6上的jsf应用程序(mojarra 2.1.8,primefaces 3.3).当用google页面速​​度分析firebug中的页面时,我意识到我可以通过gzip-compression优化一些东西.

Compressing the following resources with gzip could reduce their transfer size by 371,1KiB (74% reduction).

 Compressing http://localhost:8080/someApp/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces could save 72,5KiB (74% reduction).
 Compressing http://localhost:8080/someApp/javax.faces.resource/theme.css.jsf?ln=primefaces-aristo could save 53,4KiB (71% reduction).
 Compressing http://localhost:8080/someApp/javax.faces.resource/jsf.js.jsf?ln=javax.faces could save 49,6KiB (78% reduction). 
 ...
Run Code Online (Sandbox Code Playgroud)

我已经在server.xml中打开了压缩

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"
      compression="on" 
      noCompressionUserAgents="gozilla, traviata"
      compressableMimeType="text/html,text/xml,text/plain,application/javascript,application/json,text/javascript"/>
Run Code Online (Sandbox Code Playgroud)

但它不压缩上面列出的上述文件.

我还需要做些什么来使压缩工作?

强尼

tomcat primefaces jsf-2 mojarra

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

PostgreSQL - 如何将 Base64 图像字符串插入 BYTEA 列?

我有以下 SQL:

CREATE TABLE Documents (
  Id INT NOT NULL,
  UserId INT NOT NULL,
  Label CHARACTER VARYING(220) NOT NULL,
  Image BYTEA NOT NULL,
  PRIMARY Key(Id),
  FOREIGN KEY (UserId) REFERENCES Users(Id)
);
Run Code Online (Sandbox Code Playgroud)

我想知道,我应该如何将 Base64 图像插入表中。

Base64 字符串来自使用Node.js 上的fs模块获取图像后的 Buffer。

我正在尝试使用 Sequelize 的原始查询插入图像,但我还没有找到关于此的正确信息。

postgresql base64 sequelize.js bytea

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

缓存空值

我正在与我的首席架构师争论缓存空值。他的意见是,根据定义,不缓存空值。

我现在的问题是,总是存在缓存未命中,并且总是在不需要任何情况下输入一段代码,因为在我的情况下空值完全没问题。

我的问题:这个案例有官方定义吗?

java

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

Spring RequestBodyAdvice 没有被触发

我声明了一个@ControllerAdvice实现RequestBodyAdvice. 我的问题是它没有被触发。我有一个ResponseBodyAdvice在同一个包中,它按预期工作。

@RestControllerAdvice
public class RestPreProcessingAdvice implements RequestBodyAdvice {

  @Override
  public boolean supports(final MethodParameter methodParameter, final Type targetType,
      final Class<? extends HttpMessageConverter<?>> converterType) {
    return checkIfElegiable(...);
  }

  @Override
  public Object handleEmptyBody(final Object body, final HttpInputMessage inputMessage, final MethodParameter parameter,
      final Type targetType, final Class<? extends HttpMessageConverter<?>> converterType) {
    return body;
  }

  @Override
  public HttpInputMessage beforeBodyRead(final HttpInputMessage inputMessage, final MethodParameter parameter,
      final Type targetType, final Class<? extends HttpMessageConverter<?>> converterType) throws IOException {
    return doSomeProcessing(...);
  } …
Run Code Online (Sandbox Code Playgroud)

spring-mvc

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

@ConfigurationProperties:绑定类中的默认值

我有一个配置类FooConfig,其中有一个绑定类“ Foo”。

@Configuration
@ConfigurationProperties("foo")
public class FooConfig {

  @Value("${foo.default.iterations}")
  private Integer iterations;

  private Foo foo;

  // getter / setter

}
Run Code Online (Sandbox Code Playgroud)

在我的课程中Foo,当未在properties-file中明确设置时,我希望迭代变量集具有现有的默认配置值。

public class Foo {

  private String name;

  @Value("${foo.default.iterations}")
  private Integer iterations;

  // getter / setter

}
Run Code Online (Sandbox Code Playgroud)

我的属性文件

foo.default.iterations=999

# if this is set this config is bound (wins) in FooConfig-class as expected
# foo.iterations=111

foo.foo.name=foo
Run Code Online (Sandbox Code Playgroud)

在Works中设置默认值FooConfig,但不在我的绑定类中设置默认值Foo

我在这里想念什么?

spring-boot

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

在某些条件上对字符串排序不同

我想知道如何才能在某些方面改变排序方向.在我的情况下,以'BB'开头的字符串应该在另一个方向排序,其他所有内容都应该像往常一样订购.

我的测试班:

public class StringTest {


    public static void main(String[] args) {
        SomeClass someClass1= new SomeClass("AA");
        SomeClass someClass2= new SomeClass("AB");
        SomeClass someClass3= new SomeClass("CB4");
        SomeClass someClass4= new SomeClass("BB7");
        SomeClass someClass5= new SomeClass("BB9");
        SomeClass someClass6= new SomeClass("BB3");
        SomeClass someClass7= new SomeClass("CB3");

        List<SomeClass> list = new ArrayList<SomeClass>();
        list.add(someClass1);
        list.add(someClass2);
        list.add(someClass3);
        list.add(someClass4);
        list.add(someClass5);
        list.add(someClass6);
        list.add(someClass7);

        Collections.sort(list);

        for (SomeClass someClass : list) {
            System.out.println(someClass.getSomeField());
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我的比较者:

public class SomeClass implements Comparable<SomeClass>
{
  private String someField;

  public int compareTo(final SomeClass o)
  {
    int …
Run Code Online (Sandbox Code Playgroud)

java

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

stream-API:用流替换for-each循环(内部使用昂贵的操作调用)

我目前正在努力提高我的Java8技能,并偶然发现了这种情况.我的目标是用方法foo中的一些Java8流替换方法中的现有循环fooStream.

问题是,我在循环中调用了一个非常昂贵的操作,并希望在此调用的结果满足我的期望时退出它.我的流实现现在总是进入一次非常昂贵的操作(在map-call中),而不是我的老式循环实现.

我的流实现可以改进以防止这个额外的呼叫吗?

public class Foo {
  public static void main(final String[] args) {
    final List<String> someList = Arrays.asList(null, null, "xxx", null, null, "foo");
    foo(someList);
    fooStream(someList);
  }

  public static String foo(final List<String> someList) {
    for (final String foo : someList) {
      final String result = extremelyExpensiveOperation(foo, "loop");
      if (result != null) {
        return result;
      }
    }

    return null;
  }

  public static String fooStream(final List<String> someList) {
    return someList //
        .stream() //
        .filter(p -> extremelyExpensiveOperation(p, "streamFilter") != …
Run Code Online (Sandbox Code Playgroud)

java-8 java-stream

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

乘以字符串

如果您有一个字符串,例如:

String = "Hello world";
Run Code Online (Sandbox Code Playgroud)

如何打印(n)次?

例如

System.out.print("Hello world" * 5);
Run Code Online (Sandbox Code Playgroud)

给出输出:

Hello world
Hello world
Hello world
Hello world
Hello world
Run Code Online (Sandbox Code Playgroud)

现在显然我不能像我一样将字符串乘以5.

我知道我必须将字符串转换为整数才能使用的东西吗?但是我该怎么做?

java string integer

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

不要让测试在失败时停止

我正在寻找以下(简化)场景的最佳实践:

@Test
public void someTest() {
  for(String someText : someTexts) {
    Assert.true(checkForValidity(someText));
  }
}
Run Code Online (Sandbox Code Playgroud)

这个测试迭代了数千个文本,在这种情况下,我不希望每次失败都停止它.我希望缓冲错误,并在最后一个错误的情况下失败.JUnit有没有为我的目标做些准备?

junit junit4

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