- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写示例 JMX 应用程序。这是我的 MBean 类:
package com.pramati.jmx;
@Component
@ManagedResource(objectName="modelMBean:type=simple-calculator",
description="Calculator performing basic arithmetic on integers")
public class SimpleCalculator {
private int operand1;
private int operand2;
public SimpleCalculator() {
System.out.println("SimpleCalculator - MBean created!!");
}
@ManagedOperation(description="Addition operation")
public int add() {
return operand1 + operand2;
}
@ManagedOperation(description="Multiplication operation")
public int multiply() {
return operand1 * operand2;
}
@ManagedOperation(description="Division operation")
@ManagedOperationParameters({
@ManagedOperationParameter(name="operand1", description="Dividend"),
@ManagedOperationParameter(name="operand2", description="Divisor")
})
public int divide(int operand1, int operand2) {
if(operand2 == 0) {
throw new IllegalArgumentException("Can not divide by zero");
}
return operand1 / operand2;
}
@ManagedAttribute
public int getOperand1() {
return operand1;
}
@ManagedAttribute
public void setOperand1(int operand1) {
this.operand1 = operand1;
}
@ManagedAttribute
public int getOperand2() {
return operand2;
}
@ManagedAttribute
public void setOperand2(int operand2) {
this.operand2 = operand2;
}
}
这是来自 applicationContext 的 bean 声明:
<context:component-scan base-package="com.pramati.jmx"/>
<bean id="mbeanExporter" class="org.springframework.jmx.export.annotation.AnnotationMBeanExporter"/>
现在,当我运行 jconsole 时,我在其中看不到我的 Mbean。但是当我如下显式声明 bean 时:
<bean id="calculator" class="com.pramati.jmx.SimpleCalculator">
<property name="operand1" value="1000"/>
<property name="operand2" value="50"/>
</bean>
<bean id="mbeanExporter" class="org.springframework.jmx.export.annotation.AnnotationMBeanExporter"/>
现在,如果我运行 jconsole,我就会看到 Mbean。为什么当我使用组件扫描时 MBean 没有注册?
这是我完整的 applicationContext:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="mbeanExporter" class="org.springframework.jmx.export.annotation.AnnotationMBeanExporter"/>
<context:component-scan base-package="com.pramati.model"/>
<context:component-scan base-package="com.pramati.controller"/>
<context:component-scan base-package="com.pramati.service"/>
<context:component-scan base-package="com.pramati.validator"/>
<context:component-scan base-package="com.pramati.type.converters"/>
<context:component-scan base-package="com.pramati.jmx"/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="webBindingInitializer">
<bean class="com.pramati.spring.mvc.CustomWebBindingInitializer"/>
</property>
</bean>
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
<mvc:interceptors>
<bean class="com.pramati.spring.mvc.LoggingInterceptor"/>
<mvc:interceptor>
<mvc:mapping path="/reservationQuery/**"/>
<bean class="com.pramati.spring.mvc.AuditTimeInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
<bean name="internalresourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="order" value="#{xmlViewResolver.order+1}"/>
</bean>
<bean name="xmlViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location" value="/WEB-INF/court-views.xml"/>
<property name="order" value="#{T(org.springframework.core.Ordered).HIGHEST_PRECEDENCE}"/>
</bean>
<bean name="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="fr_FR"></property>
</bean>
<bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${connection.driverClassName}"/>
<property name="url" value="${connection.url}"/>
<property name="username" value="${connection.username}"/>
<property name="password" value="${connection.password}"/>
<property name="initialSize" value="${connection.initialSize}"/>
<property name="maxActive" value="${connection.maxActive}"/>
</bean>
<context:property-placeholder location="classpath:spring/config.properties"/>
<bean name="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>properties/resourceBundle</value>
</property>
</bean>
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="com.pramati.exception.ResourceNotFoundException">
exceptions/resourceNotFound
</prop>
</props>
</property>
<property name="defaultErrorView" value="exceptions/error"/>
</bean>
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean" >
<property name="converters">
<set>
<bean class="com.pramati.type.converters.StringToSportTypeConverter"/>
<bean class="com.pramati.type.converters.StringToDateConverter"/>
<bean class="com.pramati.type.converters.StringToPlayerConverter"/>
</set>
</property>
</bean>
<bean id="defaultReservation" class="com.pramati.model.Reservation">
<property name="courtName" value="Soccer Court #1"/>
<property name="date" value="11-11-2011"/>
<property name="hour" value="15"/>
<property name="player" value="Prasanth,9010107771"/>
<property name="sportType" value="2"></property>
</bean>
</beans>
这是安全上下文:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<beans:bean id="accessDecisionManager" class="org.springframework.security.access.vote.AffirmativeBased">
<beans:property name="decisionVoters">
<beans:list>
<beans:bean class="org.springframework.security.access.vote.RoleVoter">
<beans:property name="rolePrefix" value="ROLE_"/>
</beans:bean>
<beans:bean class="org.springframework.security.access.vote.AuthenticatedVoter"/>
<beans:bean class="com.pramati.spring.mvc.LocalIpVoter"/>
</beans:list>
</beans:property>
</beans:bean>
<http access-decision-manager-ref="accessDecisionManager">
<intercept-url pattern="/app/messageList*" access="ROLE_USER,ROLE_ANONYMOUS"/>
<intercept-url pattern="/app/messagePost*" access="ROLE_USER"/>
<intercept-url pattern="/app/messageDelete*" access="ROLE_ADMIN,IP_LOCAL_HOST"/>
<form-login login-page="/login.jsp" default-target-url="/app/messagePost"
authentication-failure-url="/login.jsp?error=true"/>
<logout logout-success-url="/login.jsp"/>
<remember-me services-alias="rememberMeService" key="springRocks" data-source-ref="dataSource"/>
<!-- <remember-me data-source-ref="dataSource" key="pramati"/> -->
<session-management session-authentication-error-url="/login.jsp?error=alreadyLoggedin" >
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"
expired-url="/login.jsp?error=alreadyLoggedin"/>
</session-management>
</http>
<beans:bean id="tokenRepository" class="org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl">
<beans:property name="dataSource" ref="dataSource"/>
<beans:property name="createTableOnStartup" value="false"/>
</beans:bean>
<beans:bean id="rememberMeService" class="org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices">
<beans:property name="key" value="springRocks"/>
<beans:property name="userDetailsService" ref="userDetailsService"/>
<beans:property name="tokenRepository" ref="tokenRepository"/>
<beans:property name="alwaysRemember" value="true"/>
</beans:bean>
<authentication-manager>
<authentication-provider>
<!-- TBD <password-encoder hash="md5"/> -->
<jdbc-user-service id="userDetailsService" data-source-ref="dataSource"
users-by-username-query=
"SELECT username, password, true as enabled
FROM MEMBER
WHERE username=?"
authorities-by-username-query=
"SELECT member.username, role.role as authorities
FROM ROLE role, MEMBER member
WHERE role.member_id=member.id and member.username=?"/>
<!-- <user-service>
<user name="admin" password="password" authorities="ROLE_ADMIN,ROLE_USER"/>
<user name="user" password="password" authorities="ROLE_USER"/>
</user-service> -->
</authentication-provider>
</authentication-manager>
</beans:beans>
最佳答案
据我了解,@Component 注释表明此类在运行 context:component-scan 时有资格成为 Spring bean。 @ManagedResource 注释表示可以将 bean 导出为 JMX MBean。它的 objectName 属性是可选的,但可以用来为 MBean 指定一个特定的名称。请按如下方式更改您的@ManagedResource
@ManagedResource(objectName="com.pramati.jmx:name=simplecalculator",
description="Calculator performing basic arithmetic on integers")
我们只是为 Mbean 命名。在这种情况下,它将在名为“simplecalculator”的“com.pramati.jmx”目录下公开。
添加这一行并检查
<context:mbean-export/>
您可以添加日志记录选项进行调试
@ManagedResource(objectName="com.pramati.jmx:name=simplecalculator", description="Calculator performing basic arithmetic on integers", log=true,
logFile="jmx.log")
关于java - 当使用注释声明 bean 时,JMX MBean 不会显示在 JConsole 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453354/
我在覆盖 ReSwift Pod 中的函数时遇到问题。我有以下模拟类(class): import Foundation import Quick import Nimble import RxSwi
我有一个类似于下面的继承结构。我正在采用 Printable 协议(protocol)并努力覆盖 description 属性。我遇到了一个谷歌此时似乎不知道的奇怪错误,提示为第三类,并引用了第二类和
我有一个类“Cat”和 Cat 类的一个子类“DerivedCat”。 Cat 有一个函数 meow(),而 DerivedCat 覆盖了这个函数。 在应用程序中,我声明了一个 Cat 对象: Cat
Kotlin 变量 变量是用于存储数据值的容器。 要创建一个变量,使用 var 或 val,然后使用等号(=)给它赋值: 语法 var 变量名 = 值 val 变量名 = 值 示例 va
C 中的所有标识符在使用前都需要声明,但我找不到它在 C99 标准中表示的位置。 我觉得也是指宏定义,不过定义的只是宏展开顺序。 最佳答案 C99:TC3 6.5.1 §2,脚注 79 明确指出: T
今天我的博客提要显示错误: This page contains the following errors: error on line 2 at column 6: XML declaration
在编写 IIF 语句、表和下面给出的语句时出现错误。 陈述: SELECT IIF(EMP_ID=1,'True','False') from Employee; table : CREATE TAB
我正在创建一个登录 Activity ,我希望它在按下登录按钮时显示进度对话框,我声明、初始化并调用了它,但它没有显示。但是当我在创建时调用进度对话框时,它出现了 这是我的代码: public cla
当我输入声明语句时: Vector distance_vector = new Vector(); 我收到错误(在两种情况下都在“双”下划线): Syntax error on token "doub
我正在本地部署在docker-for-desktop中。这样我将来可以迁移到kubernetes集群。 但是我面临一个问题。使用永久卷时,docker容器/ pod中的目录将被覆盖。 我正在拉最新的S
我有一个 MyObject 类型的对象 obj,我声明了它的实例。 MyObject obj; 但是,我没有初始化它。 MyObject 的类看起来像: public class MyObject {
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
这个问题已经有答案了: Android: Issue during Arraylist declaration (1 个回答) 已关闭 9 年前。 有时我会看到 ArrayList 声明如下 Arra
我对java比较陌生,经过大量搜索,我无法将相关问题的任何解决方案与我的解决方案配对。我正在尝试实现一种非常简单的方法来写入/读取数组,但编译器无法识别它。 “键盘”也是一个“无法识别的变量”。这是数
简短:何时分配内存 - 在声明或初始化时? 长整型:int x;将占用与int z = 10;相同的内存。 此外,这对于包含更多数据的自定义对象将如何工作。假设我有这个对象: public class
我需要使用此程序更好地理解函数定义、声明和正确调用。我真的需要了解如何使用它们。您能否向我展示编写此程序的正确方法(所有三个都正确并进行解释)? #include #include quad_eq
这是我的主要功能以及我要传递的内容。 int main(void){ struct can elC[7]; // Create an array of stucts Initiali
我想知道是否有更好的方法来完成此任务; 我有一个对象 - 其中一个属性是字典。我有一组逗号分隔值。我需要过滤 Dictionary 并仅获取 Dictionary 值至少与其中一个值匹配的那些元素 这
下面的using-declarations有什么意义 using eoPop::size; using eoPop::operator[]; using eoPop::back; using eoPo
我的问题更像是一个关于 for 循环样式的好奇问题。在阅读别人的一些旧代码时,我遇到了一种我以前从未见过的风格。 var declaredEarlier = Array for(var i=0, le
我是一名优秀的程序员,十分优秀!