我在Solaris计算机上运行安装程序时遇到此错误:
Installing...
-------------
[==================|==================|==================|==================]
[---Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)
Stack Trace:
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
at sun.awt.X11FontManager.isHeadless(X11FontManager.java:487)
at sun.awt.X11FontManager.getFontPath(X11FontManager.java:767)
at sun.font.SunFontManager.getPlatformFontPath(SunFontManager.java:3288)
at sun.font.SunFontManager$11.run(SunFontManager.java:3314)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.SunFontManager.loadFonts(SunFontManager.java:3310)
at sun.awt.X11FontManager.loadFonts(X11FontManager.java:439)
at sun.font.SunFontManager.findFont2D(SunFontManager.java:2347)
at sun.font.SunFontManager.findFont2D(SunFontManager.java:2285)
at java.awt.Font.getFont2D(Font.java:498)
at java.awt.Font.getFamily(Font.java:1187)
at java.awt.Font.getFamily_NoClientCode(Font.java:1161)
at java.awt.Font.getFamily(Font.java:1153)
at ZeroGrs.a(DashoA10*..)
at ZeroGrs.a(DashoA10*..)
at ZeroGrs.a(DashoA10*..)
at ZeroGrs.a(DashoA10*..)
at ZeroGrs.a(DashoA10*..)
at ZeroGrs.a(DashoA10*..)
at com.zerog.ia.installer.actions.InstallUninstaller.a(DashoA10*..)
at com.zerog.ia.installer.actions.InstallUninstaller.d(DashoA10*..)
at …Run Code Online (Sandbox Code Playgroud) 我使用Spring Security 3.1.4来保护部署到Tomcat的Spring MVC 3.2.4应用程序.我有以下Spring Security配置:
<http auto-config="true" use-expressions="true">
<http-basic />
<logout ... />
<form-login ... />
<intercept-url pattern="/" access="isAnonymous() or hasRole('ROLE_USER')" />
<intercept-url pattern="/about" access="isAnonymous() or hasRole('ROLE_USER')" />
<intercept-url pattern="/login" access="isAnonymous() or hasRole('ROLE_USER')" />
<intercept-url pattern="/under-construction" access="isAnonymous() or hasRole('ROLE_USER')" />
<intercept-url pattern="/admin-task*" access="hasRole('ROLE_USER') and hasRole('ROLE_ADMINISTRATOR')" />
<intercept-url pattern="/resources/**" access="isAnonymous() or hasRole('ROLE_USER')" />
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
</http>
Run Code Online (Sandbox Code Playgroud)
我注意到没有尾部斜杠的URL模式(例如/about)与带有斜杠(例如/about/)的URL不匹配,反之亦然.换句话说,具有斜杠的URL和没有斜杠的相同URL被Spring Security视为两个不同的URL.可以使用两个安全规则来解决此问题:
<intercept-url pattern="/about" access="isAnonymous() or hasRole('ROLE_USER')" />
<intercept-url pattern="/about/" access="isAnonymous() or hasRole('ROLE_USER')" />
Run Code Online (Sandbox Code Playgroud)
有更好的解决方案吗?
我知道path-type="regex"允许使用正则表达式定义URL模式,但是如果可能的话,我想避免任何不必要的复杂性. …
考虑这个JavaScript代码的格式:
$("#dataTable").jqGrid({
url: base + "products-all",
datatype: "json",
jsonReader: {repeatitems: false, id: "ref"},
colNames:["ID","Product name","Price"],
colModel:[
{name:"id",index:"id", width:40, align:"right", classes:"grid-col"},
{name:"name",index:"name", width:600, align:"left", classes:"grid-col", editable:true, editoptions:{size:25}},
{name:"price",index:"price", width:100, align:"right", classes:"grid-col", formatter:'currency', formatoptions:{decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "$ "}}
],
rowNum:5,
rowList:[5,10,20],
height:114,
shrinkToFit: true,
sortname: 'id',
sortorder: "asc",
pager: "#pagingDiv",
viewrecords: true,
caption: "Products"
});
Run Code Online (Sandbox Code Playgroud)
我应该如何在Eclipse中配置(即JavaScript的格式Preferences> JavaScript> Code Style> Formatter),以确保该代码的自动格式化(后看上去可以接受SHIFT+ CTRL+ F)应用到它?我可以让Eclipse将JSON对象的每个字段放在一个新行上,但结果看起来会很混乱.我也可以在每个字段后禁用插入换行符,然后整个对象将在一行中.
是否可以在JSON对象中禁用任何插入/删除换行符?如果不可能,我应该如何处理此代码的自动格式化?
我还有另一个例子:
jQuery("#dataTable").jqGrid(
'navGrid',
'#pagingDiv',
{},
{reloadAfterSubmit:false},
{reloadAfterSubmit:false}, …Run Code Online (Sandbox Code Playgroud) 尝试将Spring Security引入我的webapp时遇到问题.这是我的web.xml:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:application-context.xml
classpath:web-context.xml
classpath:security-context.xml
</param-value>
</context-param>
<context-param>
<param-name>defaultHtmlEscape</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<session-config>
<session-timeout>30</session-timeout>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
<!-- Spring Security config -->
<filter> …Run Code Online (Sandbox Code Playgroud) 我使用 Spring MVC 3.2.4。我有一个从 HTML 表单接收数据的控制器方法。该方法具有以下签名:
@RequestMapping(...)
public String updateProduct(@Valid Product product, BindingResult bindingResult)
Run Code Online (Sandbox Code Playgroud)
在该方法中,我可以通过以下方式获取有关数据绑定(例如,整数字段中的非整数值)和验证(JSR-303) 错误的信息:
if (bindingResult.hasErrors()) {
List<FieldError> errors = bindingResult.getFieldErrors();
for (FieldError error : errors) {
System.out.println(error.getObjectName() + " - " + error.getCode());
}
}
Run Code Online (Sandbox Code Playgroud)
我想更改此方法,以便它可以接收 JSON 格式的数据而不是application/x-www-form-urlencoded. 我@RequestBody在方法签名中添加了注释:
@RequestMapping(...)
public String updateProduct(@Valid @RequestBody Product product, BindingResult bindingResult)
Run Code Online (Sandbox Code Playgroud)
在更新的方法中,我仍然可以以相同的方式获取所有验证错误。但是,数据绑定错误会生成HttpMessageNotReadableException. 异常似乎没有用于访问错误代码和字段/对象名称等内容的属性。此外,该异常阻止了 JSR-303 验证,用户在下一次数据提交之前不会收到任何 JSR-303 验证消息。
当我实现接收 JSON 的控制器方法时,如何获取有关数据绑定错误的信息?
更新:
我能想到的一种解决方法是将Product类中的所有字段更改为 …
我正在使用@ControllerAdvice来实现一个全局异常处理程序,但我在使用HttpServletResponse#sendError()方法时遇到了一些问题。
@ExceptionHandler可以捕获各种异常,但不能捕获HttpServletResponse#sendError()调用。我知道这HttpServletResponse#sendError()不是例外,但我需要处理它,然后重定向到通用错误页面。
我使用 Spring Security 进行身份验证,在失败的处理程序中,我将状态设置401为响应:
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
String contentType = request.getContentType();
logger.info(contentType);
response.sendError( HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized" );
}
Run Code Online (Sandbox Code Playgroud)
然后在@ControllerAdvice,我尝试使用@ExceptionHandler和@ResponseStatus捕获401但它不起作用:
@ResponseStatus (value=HttpStatus.UNAUTHORIZED, reason="You don't have access right on this page")//401
@ResponseBody
@ExceptionHandler(DataIntegrityViolationException.class)
public String handleHttpStatus(DataIntegrityViolationException e){
return "genericerror";
}
Run Code Online (Sandbox Code Playgroud)
@ExceptionHandler方法可以处理HttpServletResponse#sendError()调用吗?
我使用了两个UpdatePanel标签,一个有一个Svginside 并且我需要在单击按钮时刷新其内容,而该按钮在另一个UpdatePanel. 我只是意识到Page_Load每次单击按钮时都会执行代码隐藏中的函数。我UpdateMode="Conditional"已经设置了属性但没有帮助。知道为什么吗?以下是我的代码:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel runat="server" id="GlobalUpdatePanel" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger controlid="ButtonPP" eventname="Click" />
</Triggers>
<ContentTemplate>
<svg width ="1024" height = "540"></svg>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="ControlUpdatePanel" runat="server" Visible="True" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button id ="ButtonPP" runat="server" Text="Run PP" OnClick="ButtonPP_Click" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在使用 Maven 和 Eclipse 构建 Java(Web)应用程序。
当我查看我的.war文件时,我可以在那里看到以下日志库:
log4j-1.2.14.jar
log4j-1.2.17.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
Run Code Online (Sandbox Code Playgroud)
我没有在 my 中声明这些库pom.xml,因此它们可能是传递依赖项(即我的依赖项的依赖项)。
如何找出我的哪些依赖项依赖于这些库?
我尝试使用该mvn dependency:tree插件,但它没有显示任何这些.jars。
在 Eclipse 中,Java Resources > Libraries > Maven Dependencies节点也不显示它们。不过,奇怪的是,它显示了我的项目的其他传递依赖项。
我使用 Swagger UI v2.2.0。我有一个返回纯文本的 RESTful 方法。我想用换行符显示此文本。
目前,返回的文本包含换行符,但它们显示为\n。响应Content-Type头是text/plain.
我可以返回带有插入新行字符(例如标签)的其他内容的文本<br>。我也可以改变Content-Type。我只需要显示文本中的实际换行符。
有办法实现这一点吗?
spring ×5
spring-mvc ×5
java ×4
eclipse ×2
asp.net ×1
buttonclick ×1
javascript ×1
json ×1
log4j ×1
maven ×1
page-refresh ×1
solaris ×1
swagger ×1
swagger-ui ×1
updatepanel ×1
validation ×1