我们在apache后面有两个负载均衡的tomcat服务器.好几次,我们得到一个页面上500错误的报告.检查显示以下错误,但仅在其中一个tomcats上:
java.lang.ClassNotFoundException: org.apache.jsp.jsps.userLogin_jsp
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
etc...
Run Code Online (Sandbox Code Playgroud)
我已经尝试清除工作目录并编辑jsp页面,没有运气.唯一解决它的是tomcat重启,但显然我们需要在生产中避免这种解决方案.
有人解决过这个问题吗?我的搜索只找到了没有答案的问题,包括一个被解析为"适合我"的tomcat错误:https://issues.apache.org/bugzilla/show_bug.cgi?id = 30450
我真的很感激你的见解.以下是有关该项目的其他信息:
谢谢!
我们有一个应用程序,其中时机至关重要.我们使用joda进行时间转换并以UTC时间存储所有数据.我们已经生产了一段时间,并且everthing一直是完美的但是......
现在我们注意到在时间变化前几个小时发生的事件已经过早转换!实际上,保存到数据库的UTC时间会减少一个小时.
这是一个例子.我的活动发生在2010年11月6日@太平洋时间晚上9点,通常会保存为11/7/2010 @ 4am.但是,由于夏令时在7日结束(大概是凌晨2点),这个时间会被移动并存储为11/7/2010 @ 5am.
我们需要将DST更改记录,直到实际发生在太平洋标准时间太平洋标准时间太平洋标准时间的PST区域.我认为joda会处理这个问题,特别是因为它被吹捧为比java的默认功能有了很大改进.
您的任何反馈都会有所帮助,特别是如果您能在明天的时间变更之前将它发送给我们!之后它将是学术性的,但仍然是一个有用的讨论.
以下是我们用于执行时区更改并将结果作为常规Java日期对象获取的一些代码.
public Date convertToTimeZone(Date dt, TimeZone from, TimeZone to){
DateTimeZone tzFrom = DateTimeZone.forTimeZone(from);
DateTimeZone tzTo = DateTimeZone.forTimeZone(to);
Date utc = new Date(tzFrom.convertLocalToUTC(dt.getTime(), false));
Date convertedTime = new Date(tzTo.convertUTCToLocal(utc.getTime()));
return convertedTime;
}
Run Code Online (Sandbox Code Playgroud)
编辑:以下评论的代码示例
public Date convert(Date dt, TimeZone from, TimeZone to) {
long fromOffset = from.getOffset(dt.getTime());
long toOffset = to.getOffset(dt.getTime());
long convertedTime = dt.getTime() - (fromOffset - toOffset);
return new Date(convertedTime);
}
Run Code Online (Sandbox Code Playgroud)
完整单元测试示例
package com.test.time;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import …Run Code Online (Sandbox Code Playgroud) 编辑:这里有一些解释为什么被接受的答案对我有用,可能对其他人来说可能是个问题.
在我的foo-app-servlet.xml中,我有这一行:
<context:component-scan base-package="com.foo.app" />
Run Code Online (Sandbox Code Playgroud)
当我之前使用spring2时,我的所有服务bean都来自applicationContext.xml,但现在它们直接被引入foo-app-servlet.xml.在我的项目中,servlet有自己的一组覆盖,因此我需要覆盖servlet覆盖文件而不是applicationContext覆盖文件.
覆盖时,如果你没有命名你的组件,那么它确实使用它的小写版本,所以要覆盖OrderService.foo,你这样做:
orderService.foo=bar
Run Code Online (Sandbox Code Playgroud)
结束编辑
我正在开发一个从spring 2.5升级到spring 3的项目,因此同时具有xml和基于注释的配置.我们以前使用PropertyOverrideConfigurer来更改不同环境中的属性,以取得巨大成功.我现在正在研究使用authorize.net的代码,我需要确保不从开发环境向他们发送任何内容.
为了实现这一点,我想用PropertyOverrideConfigurer覆盖我的'testMode'属性.这适用于通过xml配置的bean,但我无法弄清楚如何使用注释配置的类来完成它.
这是我在applicationContext.xml中的覆盖片段:
<bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="location" value="file:${user.home}/override.properties" />
<property name="localOverride" value="true" />
<property name="ignoreResourceNotFound" value="true" />
</bean>
Run Code Online (Sandbox Code Playgroud)
这是具有我要覆盖的属性的类:
@Component
public class OrderService {
private static Log logger = LogFactory.getLog(OrderService.class);
@Autowired @Qualifier("OrderDAO") private OrderDAO orderDao;
@Autowired private SiteManager siteManager;
String authorizenetProperties = "classpath:authorizenet.properties";
private Boolean testMode = false;
public Boolean getTestMode() {
return testMode;
}
public void setTestMode(Boolean testMode) {
this.testMode = testMode;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了一些不起作用的东西:
com.foo.services.OrderService.testMode=true
OrderService.testMode=true …Run Code Online (Sandbox Code Playgroud) 我成功地完成了一个新的roo项目,但是现在我遇到了验证工作登录页面的问题.在将控制传递给我的控制器之前,似乎验证器正在窒息.我从未有机会检查BindingResult.我在这里和网上检查了几个类似的问题,我的代码似乎符合他们正在做的事情.
首先提交表单时得到的错误(如果我通过验证,我没有收到错误消息).在这种情况下,我没有达到密码的最小长度:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'loginUser' on field 'password': rejected value [b]; codes [Size.loginUser.password,Size.password,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [loginUser.password,password]; arguments []; default message [password],50,5]; default message [Password must be between 1 and 50 characters long]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
Run Code Online (Sandbox Code Playgroud)
我的实体验证设置如下:
public class LoginUser {
@NotNull
@NotEmpty
private String username;
@NotNull
@NotEmpty(message = "Password must not be blank.")
@Size(min = 5, max = 50, message = "Password must be between 1 " …Run Code Online (Sandbox Code Playgroud) 我在spring3项目中尝试使用Scala,当我使用@ResponseBody返回地图时,我没有得到我期望的结果.我在java中包含了一个工作示例以及我在scala中的尝试
// This is Java
@RequestMapping(value="/pbx.admin", method=RequestMethod.GET)
public @ResponseBody Map<String, Object> getInfo2(HttpServletRequest request, Model model){
Map<String, Object> map = new HashMap<String, Object>();
map.put("pbx", "admin");
map.put("method", "s");
return map;
}
Run Code Online (Sandbox Code Playgroud)
java返回json并定义了pbx和方法,这正是我所期待的.
// This is Scala
@RequestMapping(value= Array("/pbx.admin"),
method=Array(RequestMethod.GET))
@ResponseBody
def getInfo2() = {
Map("pbx" -> "admin", "method" -> "s")
}
Run Code Online (Sandbox Code Playgroud)
scala返回了不同的东西:
{
empty: false,
traversableAgain: true
}
Run Code Online (Sandbox Code Playgroud)
为了获取我的地图键/值,我需要做什么?
额外的功劳,是否有更好的'scala方式'来做到这一点?谢谢!
java ×3
spring ×3
spring-mvc ×2
apache ×1
jodatime ×1
jsp ×1
scala ×1
spring-roo ×1
timezone ×1
tomcat ×1
utc ×1
validation ×1