我正在研究netbeans中的一个项目,当我使用glassfish 3.1.2启动它时.一切正常.但是当我调用/ invite url时,它被映射到以下方法
@RequestMapping(value = "/invite", method = RequestMethod.POST)
@ExceptionHandler(GenericException.class)
public ModelAndView create(@ModelAttribute(value = "preRegister") @Valid PreRegister preRegister, BindingResult result, HttpServletRequest request) {
mav = new ModelAndView();
validator.validate(preRegister, result);
List<Role> roleList = null;
if (result.hasErrors()) {
mav.setViewName("user_populate_create");
try {
roleList = roleDao.list();
} catch (Exception ex) {
logger.error("UserController: Unable to list Roles: ", ex);
throw new GenericException("UserController: Unable to list Roles: " + ex.getMessage());
}
if (roleList == null || roleList.isEmpty()) {
throw new GenericException("UserController: Unable to list Roles"); …Run Code Online (Sandbox Code Playgroud) 好的,所以我想安排一个任务在每个月的最后一天上午10:10运行.我的cron表达是
0 10 10 L * ?
Run Code Online (Sandbox Code Playgroud)
现在问题是CronSequenceGenerator为'L'值抛出NumberFormatException.这意味着Spring的CronSequenceGenerator不支持这种表达式.如何以任何其他方式执行此操作(解决方法).我不想使用quartz或者是spring的在新版本中支持这一点.
这是完整的堆栈跟踪:
Exception in thread "main" java.lang.NumberFormatException: For input string: "L"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.valueOf(Integer.java:582)
at org.springframework.scheduling.support.CronSequenceGenerator.getRange(CronSequenceGenerator.java:324)
at org.springframework.scheduling.support.CronSequenceGenerator.setNumberHits(CronSequenceGenerator.java:297)
at org.springframework.scheduling.support.CronSequenceGenerator.setDays(CronSequenceGenerator.java:275)
at org.springframework.scheduling.support.CronSequenceGenerator.setDaysOfMonth(CronSequenceGenerator.java:266)
at org.springframework.scheduling.support.CronSequenceGenerator.parse(CronSequenceGenerator.java:239)
at org.springframework.scheduling.support.CronSequenceGenerator.<init>(CronSequenceGenerator.java:81)
at org.springframework.scheduling.support.CronTrigger.<init>(CronTrigger.java:54)
at org.springframework.scheduling.support.CronTrigger.<init>(CronTrigger.java:44)
at com.hcdc.coedp.datantar.scheduler.SchedulerUtil.start(SchedulerUtil.java:75)
at com.hcdc.coedp.datantar.scheduler.SchedulerUtil.changeTrigger(SchedulerUtil.java:106)
at com.hcdc.coedp.datantar.scheduler.SchedulingService.scheduleTransfer(SchedulingService.java:70)
at com.hcdc.coedp.datantar.scheduler.Scheduler.schedule(Scheduler.java:107)
at main.Main.main(Main.java:47)
Run Code Online (Sandbox Code Playgroud)
更新:
以下是我的调度方法
/**
* Schedule a task {@link Task} with a specified cron expression.
* @param task {@link Task}
* @param cronExpression cron expression to be applied must …Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何方法可以在程序运行时观察变量值的变化.当然不使用调试器我想以编程方式进行.例如:
class A
{
public static int valueToBeWatched;
}
Run Code Online (Sandbox Code Playgroud)
因此,在运行时,如果在我的项目中的任何类的任何方法中修改此值,MyValueChangeListner则应调用该事件.
我试图在我的Spring-MVC Web App中实现长轮询,但是在4-5继续AJAX请求之后它冻结了我的浏览器和其他请求.我不知道这里是什么是我的相关代码.
控制器方法:(服务器端): -
@Asynchronous
@RequestMapping("/notify")
public @ResponseBody
Events notifyEvent(HttpServletRequest request) {
Events events = null;
try {
events = (Events) request.getSession(false).getServletContext().getAttribute("events");
System.out.println("Request Came from" + ((com.hcdc.coedp.safe.domain.User) request.getSession(false).getAttribute(Constants.KEY_LOGGED_IN_USER)).getLoginId());
if (!events.getTypeOfEvents().isEmpty()) {
System.out.println("Removing older entries");
events.getTypeOfEvents().clear();
}
while (!events.isHappend()) {
//Waiting for event to happen.
}
events = Events.getInstance();
events.setHappend(false);
request.getSession(false).getServletContext().setAttribute("events", events);
}catch (Exception e) {
e.printStackTrace();
}
return events;
}
Run Code Online (Sandbox Code Playgroud)
长轮询脚本(客户端): -
$(document).ready(function() {
$.ajaxSetup({
async:true//set a global ajax requests as asynchronus
});
alert('Handler for .onload() called.'); …Run Code Online (Sandbox Code Playgroud) 我接受采访时,面试官首先问我抽象类与抽象方法和界面之间的区别.
我回答说,如果将来要求继承某些内容,如果你已经扩展了课程,那么你将无法继续.
然后,他说这是一种情况,人们永远不必延长任何其他阶级,你必须实施合同.在这种情况下,哪个更好,一个抽象类或接口?
我告诉他你可以使用其中任何一个,但他不满意.我无法理解为什么 - 我相信这是开发人员/设计选择.
好的,我理解equals和hashcode的工作原理以及它们在hashmap中的使用方式.但是这个问题在我脑海中浮现,如果我有一个没有覆盖哈希码和等号的第三方对象,我甚至不允许修改它.
考虑以下课程:
//Unmodifiable class
public final class WannaBeKey{
private String id;
private String keyName;
//Can be many more fields
public String getId()
{
return id;
}
public String getKeyName()
{
return id;
}
//no hashcode or equals :(
}
Run Code Online (Sandbox Code Playgroud)
现在我想把这个类作为我的Hashmap键,显然它不会没有equals和hashcode.我想知道有没有办法处理这种情况?我无法想到任何我想到的事情.
谢谢.
今天我在java序列化和反序列化中遇到了奇怪的行为("奇怪",因为我不明白)
我正在从linux共享目录序列化和反序列化一个对象.序列化一切都没有任何问题,但当我试图反序列化它抛出的同一个文件
java. io. EOFException.此外,反序列化仅对此新创建的文件失败,并且正在为该目录中的所有其他旧文件工作.
所以我在互联网上搜索,发现一个线程说低磁盘空间也可能导致此错误.
所以我清理了一些临时文件,瞧它工作了.我不明白磁盘空间不足只会影响反序列化而不是序列化?
我正在使用apache commons SerializationUtils类.下面是序列化和反序列化的代码
SerializationUtils. serialize(myObject, new FileOutputStream(new File(sharePath+FILEName) ;
MyObject object=SerializationUtils. deserialize( new FileInputStream(new File(sharePath+FILEName);
Run Code Online (Sandbox Code Playgroud)
如果有人可以解释这种行为,那将非常有帮助.我怀疑它在SerializationUtils中的一个错误可能会吞噬IOException.
谢谢
我想知道如何使用Range-Query在Hibernate Search中按日期搜索,或者我是否需要实现任何过滤器.以下是我在Record Entity中的字段
/**
* When the analysis started.
*/
@Temporal(TemporalType.TIMESTAMP)
@Field(index = Index.UN_TOKENIZED)
@DateBridge(resolution = Resolution.MILLISECOND)
private Date startTS;
Run Code Online (Sandbox Code Playgroud)
我的要求是找到两个日期之间分析的记录,例如.11/11/2011至11/11/2012.I我很困惑如何做到这一点.
我面临一个奇怪的问题以下是我UserController班上的两种方法
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ExceptionHandler(GenericException.class)
public ModelAndView list(@ModelAttribute(Constants.KEY_USER_RIGHTS) Map<String, Rights> rights,@ModelAttribute(Constants.KEY_LOGGED_IN_USER) User user, HttpServletRequest request) {//details omitted}
@RequestMapping(value = "/invite", method = RequestMethod.POST)
@ExceptionHandler(GenericException.class)
public ModelAndView create(@ModelAttribute(value = "preRegister") PreRegister preRegister,Model model,HttpServletRequest request){//details omitted}
Run Code Online (Sandbox Code Playgroud)
当请求到达此控制器时它抛出异常stacktrace如下:
java.lang.IllegalStateException: Ambiguous @ExceptionHandler method mapped for [class com.hcdc.coedp.safe.exception.GenericException]: {public org.springframework.web.servlet.ModelAndView com.hcdc.coedp.safe.controller.UserController.list(java.util.Map,com.hcdc.coedp.safe.domain.User,javax.servlet.http.HttpServletRequest), public org.springframework.web.servlet.ModelAndView com.hcdc.coedp.safe.controller.UserController.create(com.hcdc.coedp.safe.domain.PreRegister,org.springframework.ui.Model,javax.servlet.http.HttpServletRequest)}.
at org.springframework.web.method.annotation.ExceptionHandlerMethodResolver.addExceptionMapping(ExceptionHandlerMethodResolver.java:93)
at org.springframework.web.method.annotation.ExceptionHandlerMethodResolver.<init>(ExceptionHandlerMethodResolver.java:61)
at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.getExceptionHandlerMethod(ExceptionHandlerExceptionResolver.java:356)
at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:306)
at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:60)
at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136)
at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1148)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:985)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) …Run Code Online (Sandbox Code Playgroud) 我已经为一个步骤实现了弹簧批处理分区,其中主步骤将其工作委托给多个并行执行的从属线程.如下图所示.(参考Spring文档)
现在如果我有多个并行执行的步骤怎么办?如何在批量配置中配置它们?我目前的配置是
<batch:job id="myJob" restartable="true" job-repository="jobRepository" >
<batch:listeners>
<batch:listener ref="myJoblistener"></batch:listener>
</batch:listeners>
<batch:step id="my-master-step">
<batch:partition step="my-step" partitioner="my-step-partitioner" handler="my-partitioner-handler">
</batch:partition>
</batch:step>
</batch:job>
<batch:step id="my-step" >
<batch:tasklet ref="myTasklet" transaction-manager="transactionManager" >
</batch:tasklet>
<batch:listeners>
<batch:listener ref="myStepListener"></batch:listener>
</batch:listeners>
</batch:step>
Run Code Online (Sandbox Code Playgroud)
我的架构图应该如下图所示:

即使有可能使用弹簧批,我也不确定.任何想法或者我都想实现它.谢谢.
我没有尝试这件事.我的要求是按照他们的名字搜索记录
以下是我的相关课程:
RecordFolderAnalysis.java
@Indexed
public class RecordFolderAnalysis extends AuditableEntity implements Serializable {
@ManyToOne
@JoinColumn(name = "arrivalId", nullable = false)
@ContainedIn
private RecordFolderArrival recordFolderArrival;
}
Run Code Online (Sandbox Code Playgroud)
RecordFolderArrival.java
@Indexed
public class RecordFolderArrival extends BaseEntity implements Serializable
{
@Column(name="recordName", unique = true, nullable = false)
@Field(index = Index.UN_TOKENIZED)
private String recordName;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "recordFolderArrival", fetch = FetchType.LAZY, targetEntity = RecordFolderAnalysis.class)
@IndexedEmbedded
private List<RecordFolderAnalysis> recordFolderAnalysis=new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)
Follwing是我的DAO类方法:
@Override
public List<T> search(final String queryString, final String... fields) {
List searchResult = hibernateTemplate.executeFind(new …Run Code Online (Sandbox Code Playgroud) 我想知道如何监视当前正在运行的批处理作业的状态.我的作业基本上是处理文件夹的一些默认步骤,所以我想逐步向用户显示进度.我正在使用Tasklets和DB Job Repository.解释一些实现这一目标的示例代码将更有帮助.
谢谢.
在阅读JLS规范接口时,我遇到以下短语:
如果接口没有直接的超接口,则接口隐式声明一个公共抽象成员方法m,其中包含签名s,返回类型r和throws子句t,对应于具有签名s的每个公共实例方法m,返回类型r和throws子句t在Object中声明,除非接口显式声明具有相同签名,相同返回类型和兼容throws子句的方法.
所以我的问题是当我们实现一个接口时为什么我们不被强制覆盖在Object类中声明的隐式方法,即使它们在接口中被隐式定义为抽象.希望我能正确对待自己.
谢谢.
java ×13
spring-mvc ×6
interface ×3
spring ×3
abstract ×2
hibernate ×2
lucene ×2
oop ×2
spring-batch ×2
ajax ×1
eofexception ×1
file-io ×1
hashmap ×1
jls ×1
jquery ×1
long-polling ×1
reflection ×1
search ×1
variables ×1