我正在使用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) 我有一个运行在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)
但它不压缩上面列出的上述文件.
我还需要做些什么来使压缩工作?
强尼
我有以下 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 的原始查询插入图像,但我还没有找到关于此的正确信息。
我正在与我的首席架构师争论缓存空值。他的意见是,根据定义,不缓存空值。
我现在的问题是,总是存在缓存未命中,并且总是在不需要任何情况下输入一段代码,因为在我的情况下空值完全没问题。
我的问题:这个案例有官方定义吗?
我声明了一个@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) 我有一个配置类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。
我在这里想念什么?
我想知道如何才能在某些方面改变排序方向.在我的情况下,以'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) 我目前正在努力提高我的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) 如果您有一个字符串,例如:
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.
我知道我必须将字符串转换为整数才能使用的东西吗?但是我该怎么做?
我正在寻找以下(简化)场景的最佳实践:
@Test
public void someTest() {
for(String someText : someTexts) {
Assert.true(checkForValidity(someText));
}
}
Run Code Online (Sandbox Code Playgroud)
这个测试迭代了数千个文本,在这种情况下,我不希望每次失败都停止它.我希望缓冲错误,并在最后一个错误的情况下失败.JUnit有没有为我的目标做些准备?
java ×4
base64 ×1
bytea ×1
eclipselink ×1
integer ×1
java-8 ×1
java-stream ×1
jsf-2 ×1
junit ×1
junit4 ×1
log4j ×1
mojarra ×1
postgresql ×1
primefaces ×1
sequelize.js ×1
spring-boot ×1
spring-mvc ×1
string ×1
tomcat ×1