在我的机器我安装了两个版本的Java:(1.6和1.7手动我安装).我需要他们两个不同的项目.但Maven的,我需要1.7,现在我的Maven使用1.6 Java版本,我怎么能设置的Maven使用1.7?
我在我的logback.xml配置文件中这个appender:
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>classpath:addressbookLog.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{dd MMM yyyy;HH:mm:ss} %-5level %logger{36} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>classpath:addressbookLog.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
Run Code Online (Sandbox Code Playgroud)
所以我指定文件的路径,通过类路径以相对的方式打印日志,但它不起作用,没有创建和写入文件addressbookLog.log.它只适用于像/home/andrea/.../resources/addressbookLog.log这样的绝对路径.您对如何使用classpath有任何想法吗?
我正在使用Hibernate.如何将persistence.xml配置为具有H2内存数据库?
我的persistence.xml是:
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="persistenceUnit"
transaction-type="RESOURCE_LOCAL">
<class>com.mastertheboss.domain.Employee</class>
<class>com.mastertheboss.domain.Department</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" />
<property name="javax.persistence.jdbc.user" value="sa" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
但是当我运行我的应用程序时,我收到以下错误:
Internal Exception: org.h2.jdbc.JdbcSQLException: Table "EMPLOYEE" not found; SQL statement:
SELECT ID, NAME, DEPARTMENT_ID FROM EMPLOYEE [42102-171]
Error Code: 42102
Call: SELECT ID, NAME, DEPARTMENT_ID FROM EMPLOYEE
Query: ReadAllQuery(referenceClass=Employee sql="SELECT ID, …
让我们假设有这种情况:
我们以标准方式配置弹簧数据,有一个Respository对象,一个Entity对象,一切运行良好.
现在,对于一些复杂的动机,我必须直接使用EntityManager(或者JdbcTemplate,比弹簧数据更低的级别)Entity使用本机sql查询来更新与我相关联的表.所以我没有使用Entity对象,只是简单地在我用作实体的表上手动进行数据库更新(更准确地说是从中获取值的表,请参阅下一行).原因是我必须将我的spring-data绑定Entity到一个mysql视图,该视图使UNION成为多个表,而不是直接到我需要更新的表.
会发生什么:
在功能测试中,我称之为"手动"更新方法(在创建mysql视图的表上)(通过实体管理器)和如果我做一个简单的Respository.findOne(objectId)我得到旧对象(没有更新一个).我打电话Entitymanager.refresh(object)来获取更新的对象.
为什么?
有没有办法在spring-data中"同步"(开箱即用)对象(或强制刷新一些)?还是我要求奇迹?我不讽刺,但也许我不是那么专家,也许(或可能)是我的无知.如果是这样,请解释我为什么和(如果你想)分享一些关于这个惊人框架的高级知识.
我的工作机器上有两个Tomcat实例A和B,我需要为每个实例设置两个不同的java版本; 在Java 1.6和B java 1.7上,我该怎么做?
我有A.js,B.js,C.js某目录下,我想写在bash shell中一个命令行来重命名这些文件_A,_B,_C.我怎样才能做到这一点?
我试过find -name '*.sh' | xargs -I file mv file basename file .sh但它不起作用,basename文件.sh不被识别为嵌套命令
我想遍历元素列表并异步(以并行方式)对它们执行操作。
这是我的代码:
@Autowired
ElemManager elemManager;
...
List<Elem> elems = new ArrayList<>();
for ( Elem elem : elems ) {
System.out.println(elemManager.doSomething(elem).get());
}
Run Code Online (Sandbox Code Playgroud)
其中 ElemManager 是:
public class ElemManager {
@Async
public Future<String> doSomething( Elem elem ) {
// do something
return "done";
}
Run Code Online (Sandbox Code Playgroud)
我还在 spring 上下文中创建了一个线程池并启用了异步执行,因此:
@Configuration
@EnableAsync
public class TaskConfiguration implements AsyncConfigurer {
@Override
public Executor getAsyncExecutor() {
final ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
threadPoolTaskExecutor.setMaxPoolSize( 5 );
threadPoolTaskExecutor.setAwaitTerminationSeconds( 60 );
threadPoolTaskExecutor.initialize();
return threadPoolTaskExecutor;
}
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return …Run Code Online (Sandbox Code Playgroud) 我有一个用servlet和JSP开发的web应用程序.IllegalArgumentException如果我插入错误的参数,我配置我的应用程序抛出一个.然后我以这种方式配置了我的web.xml文件:
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
当我上升404 error,然后它工作和呼叫error.jsp,但当我上升java.lang.IllegalArgumentException,然后它不起作用,我有一个blank page而不是error.jsp.为什么?
服务器是Glassfish,日志显示真的IllegalArgumentException上升.
如何在检票口中"实时"选择单选按钮?我的意思是,如果我有一个带有两个选项A和B的单选按钮,我想在按钮上添加一个ajax行为(在更改时,在更新时,无论有什么用),这样如果我选择A它会在页面中发生某些事情,如果我选择B发生了别的事情.你能帮助我吗?
Apache Camel(在Java DSL中)是否有类似于Java交换器的构造?
例如:
from( incomingRoute )
.choice()
.when( simple( "${body.getType} == '" + TYPE.A.name() + "'" ) )
.to( A_Endpoint )
.when( simple( "${body.getType} == '" + TYPE.B.name() + "'" ) )
.to( B_Endpoint )
.when( simple( "${body.getType} == '" + TYPE.C.name() + "'" ) )
.to( C_Endpoint )
.otherwise()
.to( errorEndpoint );
Run Code Online (Sandbox Code Playgroud)
可以翻译成其他更类似于switch的东西吗?我的意思是我不想使用简单的谓词,而只使用body元素类型的值。还是我的方法完全错误?(这可能是合理的)