我知道Java的方法不能大于64 KB.该限制导致我们从JavaCC语法生成代码的问题.我们遇到了Java 6的问题,并且能够通过更改语法来解决这个问题.是否已针对Java 7更改了限制,还是计划用于Java 8?
只是为了说清楚.我自己不需要大于64 KB的方法.但我写了一个语法,编译成一个非常大的方法.
我正在审查当前的JSF项目,其中web.xml
配置包含:
*.xhtml
)com.sun.faces.config.ConfigureListener
我正在使用JSF 2.2和Mojarra实现.
我很困惑ConfigureListener
.配置中是否需要此类?这门课的目标是什么?我找不到任何信息,班级几乎没有javadoc.
如果我删除此配置,一切似乎都以相同的方式工作.因此,我想ConfigureListener
可以或应该删除,但我不确定.
我正在使用Selenium和JUnit与Java,我想知道当通过点击链接打开一个新的弹出窗口时是否发生404错误(我正在搜索像assertTrue(selenium.no404error())这样的东西.
我怎样才能做到这一点 ?
是否有我缺少的注释或者这是对hibernate检索的限制?
实体:
class A {
Long id;
Set<B> b;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "A_B", joinColumns = @JoinColumn(name = "A_ID"), inverseJoinColumns = @JoinColumn(name = "B_ID")
public Set<B> getBs() {
return b;
}
}
class B {
Long id;
Set<C> c;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "B_C", joinColumns = @JoinColumn(name = "B_ID"), inverseJoinColumns = @JoinColumn(name = "C_ID")
public Set<C> getCs() {
return C;
}
}
Run Code Online (Sandbox Code Playgroud)
的DAO:
class ADaoImpl {
public A load(Long id) {
return new A((A) session.load(A.class, id);
}
} …
Run Code Online (Sandbox Code Playgroud) 现在,我用jsf,spring和ibatis编写示例应用程序.我使用facelets并编写template.xhtml,header.xhtml,menu.xml,login.xhtml和主页.登录后,我发现了这个错误.
在浏览器中,
Setter not found for property class
+ Stack Trace
+ Component Tree
+ Scoped Variables
Run Code Online (Sandbox Code Playgroud)
在控制台中,
21:01:20,890 SEVERE [viewhandler] Error Rendering View[/view/SPAR02.xhtml]
java.lang.IllegalArgumentException: Setter not found for property class
at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1645)
at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1526)
at com.sun.facelets.tag.jsf.ComponentRule$LiteralAttributeMetadata.applyMetadata(ComponentRule.java:49)
at com.sun.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:36)
at com.sun.facelets.tag.MetaTagHandler.setAttributes(MetaTagHandler.java:62)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:144)
at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
at com.sun.facelets.tag.jstl.core.ForEachHandler.apply(ForEachHandler.java:175)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.tag.UserTagHandler.apply(UserTagHandler.java:122)
at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:337)
at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:307)
at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
at com.sun.facelets.tag.jstl.core.ChooseWhenHandler.apply(ChooseWhenHandler.java:45)
at com.sun.facelets.tag.jstl.core.ChooseHandler.apply(ChooseHandler.java:68)
at com.sun.facelets.tag.jstl.core.ChooseOtherwiseHandler.apply(ChooseOtherwiseHandler.java:41)
at com.sun.facelets.tag.jstl.core.ChooseHandler.apply(ChooseHandler.java:73)
at …
Run Code Online (Sandbox Code Playgroud) 好的,我有两个下拉列表.列表B基于使用Ajax技术在列表A上进行的选择来填充.
现在的问题是,一旦我选择了表单A的选项,我就无法看到列表B填充,因为Ajax需要花费大量的时间来加载.我想知道如何在这种情况下使用Wait条件为Ajax提供足够的时间来加载.我是初学者,所以如果我的问题听起来很愚蠢,我很抱歉.但我真的很坚持这一点.
我不能用:
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id/xpath)));
Run Code Online (Sandbox Code Playgroud)
因为id xpath
等等总是保持不变,即使列表没有填充.
我正在尝试创建自己的方法安全表达式,我想在其中使用@PreFilter
和@PostFilter
注释.
在搜索教程和类似问题时,我发现了两种方法.
第一种是扩展DefaultMethodSecurityExpressionHandler
和覆盖createSecurityExpressionRoot
,以便进行定制SecurityExpressionRoot
.
@PreAuthorize('isOwner(#someEntity)')
Run Code Online (Sandbox Code Playgroud)
第二种方法是简单地使用@Component类和@Pre
/ @Post
filter访问其方法@bean.method()
@PreAuthorize("@mySecurityService.isOwner('#someEntityl')")
Run Code Online (Sandbox Code Playgroud)
我的问题是:哪种方式首选?如果两者都可以,为什么选择另一个?
谢谢Marco
我正在尝试使用Xtream序列化Java对象,但我得到以下sxception
线程"main"中的异常com.thoughtworks.xstream.converters.ConversionException:无法调用java.security.CodeSource.readObject():null
---- Debugging information ----
message : Could not call java.security.CodeSource.readObject()<br>
cause-exception : java.lang.RuntimeException<br>
cause-message : null<br>
class : java.security.CodeSource<br
required-type : java.security.CodeSource<br
converter-type : com.thoughtworks.xstream.converters.reflection.SerializableConverter
path : /org.openqa.selenium.firefox.FirefoxDriver/executor/connection/process/process/process/executor/streamHandler/outputThread/group/parent/threads/java.lang.Thread/contextClassLoader/parent/defaultDomain/codesource/java.security.CodeSource<br
line number : 6853<br
class[1] : java.security.ProtectionDomain<br>
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter<br>
class[2] : sun.misc.Launcher$ExtClassLoader<br>
class[3] : sun.misc.Launcher$AppClassLoader<br>
class[4] : java.lang.Thread<br>
class[5] : [Ljava.lang.Thread;<br>
converter-type[2] : com.thoughtworks.xstream.converters.collections.ArrayConverter<br>
class[6] : java.lang.ThreadGroup<br>
class[7] : org.apache.commons.exec.PumpStreamHandler<br>
class[8] : org.apache.commons.exec.DefaultExecutor<br>
class[9] : org.openqa.selenium.os.UnixProcess<br>
class[10] : org.openqa.selenium.os.CommandLine<br>
class[11] : org.openqa.selenium.firefox.FirefoxBinary<br>
class[12] : org.openqa.selenium.firefox.internal.NewProfileExtensionConnection<br>
class[13] : org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor<br>
class[14] …
Run Code Online (Sandbox Code Playgroud) 我想将一个Spring注入一个BeanFactory
Bean创建的同样BeanFactory
是以任何方式这样做的吗?
顺便说一句,我正在开发一个Web应用程序.如果不是,我知道我可以获得BeanFactory,RequestContext
但我想要注入的bean BeanFactory
不在requestContext
但仍在应用程序上下文中.我能这样做吗?
我试图用maven运行一个简单的junit测试,但它没有检测到任何测试.我哪里错了?项目目录
Project -> src -> test-> java -> MyTest.java
Run Code Online (Sandbox Code Playgroud)
结果:
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
Run Code Online (Sandbox Code Playgroud)
的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.buildproftest.ecs</groupId>
<artifactId>buildprofiletest</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
Junit测试用例
import org.junit.jupiter.api.Test;
public class MyTest {
@Test
public void printTest() {
System.out.println("Running JUNIT …
Run Code Online (Sandbox Code Playgroud)