小编Pav*_*vel的帖子

如何将一个实现与Google Guice的几个接口绑定?

我需要绑定一个类作为两个接口的实现.它应该绑定在单一范围内.

我做了什么:

bind(FirstSettings.class).
    to(DefaultSettings.class).
    in(Singleton.class);
bind(SecondSettings.class).
    to(DefaultSettings.class).
    in(Singleton.class);
Run Code Online (Sandbox Code Playgroud)

但是,显然,它会导致创建两个不同的实例,因为它们绑定到不同的键.

我的问题是我该怎么做?

java dependency-injection guice

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

如何使用Spring和Tiles2本地化页面标题?

我有一个Spring应用程序,它使用Tiles作为视图层.所以我的所有页面定义都是这样的:

<definition name="main.page" template="/tiles/layout.jsp">
    <put-attribute name="title" value="Page Title"/>
    <put-attribute name="header" value="/tiles/header.jsp"/>
    <put-attribute name="body" value=""/>
    <put-attribute name="footer" value="/tiles/footer.jsp"/>
</definition>

<definition name="welcome.page" extends="main.page">
    <put-attribute name="title" value="Main Page"/>
    <put-attribute name="body" value="/pages/welcome.jsp"/>
</definition>
Run Code Online (Sandbox Code Playgroud)

设置页面标题的代码是:

<title><tiles:getAsString name="title"/></title>
Run Code Online (Sandbox Code Playgroud)

我想用Spring标签进行本地化:

<spring:message>
Run Code Online (Sandbox Code Playgroud)

有没有"最佳实践"如何做到这一点?

spring localization tiles internationalization

10
推荐指数
2
解决办法
3722
查看次数

如何在远程 Glassfish 服务器上激活 JMX 以使用 jconsole 进行访问?

我想监控远程 glassfish 服务器。我在 domain.xml 中启用了 JMX 连接:

<jmx-connector accept-all="true" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false">
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。我仍然无法使用 JConsole 连接到服务器。然后我找到了解决方案 - 我需要在 domain.xml 中指定 JVM 属性以打开 8686 端口进行远程连接。所以我将此行添加到java-config部分:

<jvm-options>-Dcom.sun.management.jmxremote</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.port=8686</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.local.only=false</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.authenticate=false</jvm-options>
Run Code Online (Sandbox Code Playgroud)

但是现在当我启动服务器时,出现以下错误:

无法加载日志管理器“com.sun.enterprise.server.logging.ServerLogManager”java.lang.ClassNotFoundException:com.sun.enterprise.server.logging.ServerLogManager at java.net.URLClassLoader$1.run(URLClassLoader.java:200)在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 sun.misc.Launcher$AppClassLoader .loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 java.util.logging.LogManager$1.run(LogManager.java:166) 在 java.security.AccessController.doPrivileged (本机方法)在 java.util.logging.LogManager.(LogManager.java:156) 在 java.util.logging.Logger。getLogger(Logger.java:273) at sun.management.snmp.util.MibLogger.(MibLogger.java:57) at sun.management.snmp.util.MibLogger.(MibLogger.java:42) at sun.management.jmxremote .ConnectorBootstrap.(ConnectorBootstrap.java:760) at sun.management.Agent.startAgent(Agent.java:127) at sun.management.Agent.startAgent(Agent.java:239) javax.management.JMRuntimeException: 无法加载 MBeanServerBuilder类 com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder:java.lang.ClassNotFoundException:com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder 在 javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java :480) 在 javax.management.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory.java:511) 在 javax。management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298) at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213) …

java jmx glassfish jconsole

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

如何在AuthenticationSuccessHandler中检索会话范围的bean?

我有一个自定义AuthenticationSuccessHandler.

我想要做的是在onAuthenticationSuccess方法中设置一些会话数据.

要存储会话数据,我想使用会话范围的bean,它可以在任何控制器中正常工作.

但是如果我尝试在onAuthenticationSuccess方法中检索它,我会得到一个异常:

创建名为'scopedTarget.sessionData'的bean时出错:范围'session'对当前线程无效;

我的代码是:

WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
SessionData sessionData = context.getBean(SessionData.class);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

java spring dependency-injection spring-mvc session-scope

4
推荐指数
1
解决办法
2536
查看次数