小编Ale*_*xey的帖子

无法在Solaris上初始化类sun.awt.X11GraphicsEnvironment

我在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)

java solaris jvm-arguments

18
推荐指数
3
解决办法
7万
查看次数

URL中的Spring Security,尾部斜杠和点

我使用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模式,但是如果可能的话,我想避免任何不必要的复杂性. …

java spring spring-mvc spring-security

17
推荐指数
1
解决办法
5610
查看次数

在Eclipse中自动格式化JavaScript代码

考虑这个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)

javascript eclipse

8
推荐指数
3
解决办法
5万
查看次数

通用匹配模式('/**')在其他模式之前定义

尝试将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 spring-mvc spring-security

7
推荐指数
1
解决办法
1万
查看次数

在 Spring MVC 中获取 JSON 表单绑定错误的详细信息

我使用 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类中的所有字段更改为 …

java validation spring json spring-mvc

5
推荐指数
1
解决办法
4287
查看次数

Spring 异常处理 - @ControllerAdvice 无法处理 HttpServletResponse#sendError()

我正在使用@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()调用吗?

java spring spring-mvc

5
推荐指数
1
解决办法
2936
查看次数

updatepanel 内的按钮导致整个页面刷新

我使用了两个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)

提前致谢!

asp.net updatepanel buttonclick page-refresh

2
推荐指数
1
解决办法
2083
查看次数

如何找到Maven传递依赖的父级

我正在使用 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节点也不显示它们。不过,奇怪的是,它显示了我的项目的其他传递依赖项。

eclipse spring log4j spring-mvc maven

2
推荐指数
1
解决办法
5528
查看次数

在响应文本中显示换行符

我使用 Swagger UI v2.2.0。我有一个返回纯文本的 RESTful 方法。我想用换行符显示此文本。

目前,返回的文本包含换行符,但它们显示为\n。响应Content-Type头是text/plain.

在此输入图像描述

我可以返回带有插入新行字符(例如标签)的其他内容的文本<br>。我也可以改变Content-Type。我只需要显示文本中的实际换行符。

有办法实现这一点吗?

swagger swagger-ui

2
推荐指数
1
解决办法
4083
查看次数