我Caused by: java.lang.NullPointerException
有时会。看起来弹簧无法org.springframework.jmx.export.notification.NotificationPublisher
正确注入。我正在使用 spring 2.5.6 并部署在 WebSphere 7 中。我们如何解决这个 NPE 问题?
import javax.management.Notification;
import org.springframework.jmx.export.notification.NotificationPublisher;
import org.springframework.jmx.export.notification.NotificationPublisherAware;
import com.xyz.SpringUtil;
import com.xyz.notification.INotificationMBean;
import com.xyz.security.impl.SpringSecurityHelper;
/**
* provides a central class for the publishing of Notifications. This allows us to centralize all notification
* Listeners configuration in a central location, for this one MBean.
*/
public class NotificationMBean implements INotificationMBean, NotificationPublisherAware {
/** used to publish notifications. This will be set automatically by Spring */
private NotificationPublisher notificationPublisher;
private String proxyUser; // set by Spring - used for RMI-direct calls
private SpringSecurityHelper securityHelper;
protected SpringSecurityHelper getSecurityHelper() {
if (securityHelper == null) {
securityHelper = (SpringSecurityHelper) SpringUtil.getApplicationContext().getBean(
SpringSecurityHelper.SPRING_SECURITY_HELPER);
}
return securityHelper;
}
protected void setSecurityHelper(SpringSecurityHelper securityHelper) {
this.securityHelper = securityHelper;
}
/**
* {@inheritDoc}
*/
public void publishNotification(Notification notif) {
getSecurityHelper().switchUserIfUnauthenticated(getProxyUser());
getNotificationPublisher().sendNotification(notif);
}
/**
* Setter for notificationPublisher.
* @param notificationPublisher NotificationPublisher
*/
public void setNotificationPublisher(NotificationPublisher notificationPublisher) {
this.notificationPublisher = notificationPublisher;
}
/**
* Getter for the notificationPublisher.
* @return NotificationPublisher Returns the notificationPublisher.
*/
private NotificationPublisher getNotificationPublisher() {
return notificationPublisher;
}
/**
* {@inheritDoc}
*/
public String getProxyUser() {
return proxyUser;
}
/**
* {@inheritDoc}
*/
public void setProxyUser(String username) {
this.proxyUser = username;
}
}