以上就是给各位分享在SpringBoot中部署Quartz时出现NullPointerException,其中也会对springbootmultipartfile为null进行解释,同时本文还将给你拓
以上就是给各位分享在Spring Boot中部署Quartz时出现NullPointerException,其中也会对spring boot multipartfile为null进行解释,同时本文还将给你拓展android – 尝试访问Kotlin片段中的视图时出现NullPointerException、apache – 使用spring引发嵌入式ldap服务器时出现NullPointerException、Flink出现network.partition.ProducerFailedException: java.lang.NullPointerException、Hibernate / JPA-访问SingularAttribute参数时出现NullPointerException等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- 在Spring Boot中部署Quartz时出现NullPointerException(spring boot multipartfile为null)
- android – 尝试访问Kotlin片段中的视图时出现NullPointerException
- apache – 使用spring引发嵌入式ldap服务器时出现NullPointerException
- Flink出现network.partition.ProducerFailedException: java.lang.NullPointerException
- Hibernate / JPA-访问SingularAttribute参数时出现NullPointerException
在Spring Boot中部署Quartz时出现NullPointerException(spring boot multipartfile为null)
我正在尝试将Quartz 2.2.1与Spring Boot一起使用。我试图声明一个计划的任务,该任务应该将一些数据写入文件中。我的工作定义如下:
public class JobTask implements Job {@AutowiredJobController controller;@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException { try { controller.doPrintData(); } catch (Exception e) { e.printStackTrace(); } }}
然后 :
public class StartJob { public static void main(final String[] args) { final SchedulerFactory factory = new StdSchedulerFactory(); Scheduler scheduler; try { scheduler = factory.getScheduler(); scheduler.start(); } catch (SchedulerException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { scheduler = factory.getScheduler(); final JobDetailImpl jobDetail = new JobDetailImpl(); jobDetail.setName("My job"); jobDetail.setJobClass(JobTask.class); final SimpleTriggerImpl simpleTrigger = new SimpleTriggerImpl(); simpleTrigger.setStartTime(new Date(System.currentTimeMillis() + 5000)); //simpleTrigger.setStartTime(dateOf(12, 58, 00,06,05,2016)); simpleTrigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY); simpleTrigger.setRepeatInterval(5000); simpleTrigger.setName("Trigger execution every 5 secondes"); scheduler.start(); scheduler.scheduleJob(jobDetail, simpleTrigger); System.in.read(); if (scheduler != null) { scheduler.shutdown(); } } catch (final SchedulerException e) { e.printStackTrace(); } catch (final IOException e) { e.printStackTrace(); } }}
PS:我已经测试了我的控制器方法“ doPrintData”,它可以工作。但是,当我将其放入面向 javaNullPointerException
的execute方法中时。
答案1
小编典典Spring
Boot为您管理它。删除石英依赖项,仅创建Service
具有计划执行的:
@Servicepublic class JobScheduler{ @Autowired JobController controller; //Executes each 5000 ms @Scheduled(fixedRate=5000) public void performJob() { controller.doPrintData(); }}
并为您的应用程序启用任务计划:
@SpringBootApplication@EnableSchedulingpublic class Application { public static void main(String[] args) throws Exception { SpringApplication.run(Application.class); }}
也可以看看:
- 在Spring Boot中调度任务
android – 尝试访问Kotlin片段中的视图时出现NullPointerException
如何使用Kotlin Android Extensions with Fragments?
如果我在onCreateView()中使用它们,我会得到这个NullPointerException异常:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual
method ‘android.view.View android.view.View.findViewById(int)’ on a
null object reference
这是片段代码:
package com.obaied.testrun.Fragment
import android.os.Bundle
import android.support.v4.app.Fragment
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.obaied.acaan.R
import kotlinx.android.synthetic.main.fragment_card_selector.*
public class CardSelectorFragment : Fragment() {
val TAG = javaClass.canonicalName
companion object {
fun newInstance(): CardSelectorFragment {
return CardSelectorFragment()
}
}
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
var rootView = inflater?.inflate(R.layout.fragment_card_selector, container, false)
btn_K.setonClickListener { Log.d(TAG, "onViewCreated(): hello world"); }
return rootView
}
}
`
解决方法:
Kotlin合成属性不是神奇的,并且以非常简单的方式工作.当你访问btn_K时,它会调用getView().findViewById(R.id.btn_K).
问题是您过早访问它. getView()在onCreateView中返回null.尝试在onViewCreated方法中执行此操作:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
btn_K.setonClickListener { Log.d(TAG, "onViewCreated(): hello world"); }
}
apache – 使用spring引发嵌入式ldap服务器时出现NullPointerException
我正在尝试使用以下方法来升级Spring嵌入式Ldap服务器:
但我继续得到这个例外:
2010-06-10 14:33:35,559 ERROR main ApacheDSContainer start - Server startup Failed
java.lang.NullPointerException
at org.apache.directory.server.core.schema.DefaultSchemaService.initialize(DefaultSchemaService.java:382)
at org.apache.directory.server.core.DefaultDirectoryService.initialize(DefaultDirectoryService.java:1425)
at org.apache.directory.server.core.DefaultDirectoryService.startup(DefaultDirectoryService.java:907)
at org.springframework.security.ldap.server.ApacheDSContainer.start(ApacheDSContainer.java:160)
at org.springframework.security.ldap.server.ApacheDSContainer.afterPropertiesSet(ApacheDSContainer.java:113)
at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.invokeInitMethods(AbstractAutowireCapablebeanfactory.java:1469)
at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.initializeBean(AbstractAutowireCapablebeanfactory.java:1409)
at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:456)
at org.springframework.beans.factory.support.Abstractbeanfactory$1.getobject(Abstractbeanfactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:288)
at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:190)
at org.springframework.beans.factory.support.DefaultListablebeanfactory.preInstantiateSingletons(DefaultListablebeanfactory.java:563)
at org.springframework.context.support.AbstractApplicationContext.finishbeanfactoryInitialization(AbstractApplicationContext.java:872)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextinitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4212)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
我正在使用spring 3.0.2并为ldap添加了以下jar:
弹簧安全LDAP的3.0.2.RELEASE.jar
弹簧LDAP的1.3.0.RELEASE-all.jar在
ApacheDS中,全1.5.6.jar
共享LDAP的0.9.15.jar
slf4j-api-1.5.6.jar
SLF4J-简单1.5.6.jar
请帮忙….
我最近开始研究替代品,因为尽管投入了大量的时间和精力,但我无法用Apache Directory实现我想要的东西. (我基本上想将Active Directory实例的模式和用户数据库复制到嵌入式服务器中.)
我发现UnboundID LDAP SDK是一个很好的替代品.与它集成需要比弹簧上下文中的单线程更多的努力(例如< security:ldap-server />),但不多.启动LDAP服务器只需几行代码:
InMemoryDirectoryServerConfig config =
new InMemoryDirectoryServerConfig("dc=example,dc=com");
// schema config only necessary if the standard
// schema provided by the library doesn't suit your needs
config.setSchema(Schema.getSchema("your-custom-schema.schema"));
// listener config only necessary if you want to make sure that the
// server listens on port 33389,otherwise a free random port will
// be picked at runtime - which might be even better for tests btw.
config.setListenerConfigs(
new InMemoryListenerConfig("myListener",null,33389,null));
InMemoryDirectoryServer ds = new InMemoryDirectoryServer(config);
ds.startListening();
// import your test data from ldif files
ds.importFromLDIF(true,"content.ldif");
您需要的唯一依赖是:
将上面的代码包装在一个可以从Spring上下文中实例化和配置的类中非常容易.
有关UnboundID LDAP SDK的文档和代码示例,请参阅:https://www.unboundid.com/products/ldap-sdk/docs/
(我不以任何方式与UnboundID有关联.)
Flink出现network.partition.ProducerFailedException: java.lang.NullPointerException
一、错误日志
org.apache.flink.runtime.io.network.netty.exception.RemoteTransportException: Error at remote task manager ''xx.xxx.xxx.xxx/xxx.xxx.xxx.xxx:34750''. at org.apache.flink.runtime.io.network.netty.CreditBasedPartitionRequestClientHandler.decodeMsg(CreditBasedPartitionRequestClientHandler.java:325) ~[flinkjob:?] at org.apache.flink.runtime.io.network.netty.CreditBasedPartitionRequestClientHandler.channelRead(CreditBasedPartitionRequestClientHandler.java:214) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[flinkjob:?] at org.apache.flink.runtime.io.network.netty.NettyMessageClientDecoderDelegate.channelRead(NettyMessageClientDecoderDelegate.java:112) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[flinkjob:?] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] Caused by: org.apache.flink.runtime.io.network.partition.ProducerFailedException: java.lang.NullPointerException at org.apache.flink.runtime.io.network.netty.PartitionRequestQueue.writeAndFlushNextMessageIfPossible(PartitionRequestQueue.java:224) ~[flinkjob:?] at org.apache.flink.runtime.io.network.netty.PartitionRequestQueue.enqueueAvailableReader(PartitionRequestQueue.java:110) ~[flinkjob:?] at org.apache.flink.runtime.io.network.netty.PartitionRequestQueue.userEventTriggered(PartitionRequestQueue.java:173) ~[flinkjob:?] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:346) ~
二、原因分析
由于启动参数中只设置了一个插槽,而多个Task任务都来共享这个插槽,导致网络出现繁忙、一些Task容器无法使用到插槽,从而出现network.partition.ProducerFailedException
三、解决方案
发生报错之前,我的启动参数如下:
bin/flink run -d -m yarn-cluster -yjm 2048m -ytm 4096m -p 1 -ys 1 -yD taskmanager.memory.managed.size=265M -c 全类名 flinkjob.jar
解决方案是:合理设置并行度以及插槽数,在启动参数中指定即可
bin/flink run -d -m yarn-cluster -yjm 2048m -ytm 4096m -p 5 -ys 3 -yD taskmanager.memory.managed.size=265M -c 全类名 flinkjob.jar
参数说明:
-m:指定yarn集群
-yjm:指定jobmanager的内存
-ytm:指定taskmanager的内存
-p:指定并行度
-ys:指定插槽的数量
-yD:后台运行
taskmanager.memory.managed.size:taskmanager直接管理内存
总结
以上是小编为你收集整理的Flink出现network.partition.ProducerFailedException: java.lang.NullPointerException全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
原文地址:https://www.cnblogs.com/qq1035807396/p/16626856.html
Hibernate / JPA-访问SingularAttribute参数时出现NullPointerException
我正在尝试对Hibernate 5.0.7.Final使用JPA2类型安全的条件查询。
...criteria.where( builder.equal( root.get(SingularAttribute.attr), value ));//where parameters are//criteria.where( builder.equal( root.get(Person_.name), "Can" ));...
root.get总是抛出异常NullPointerException
。元模型类Person_
用于Person
通过产生org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor
。
在未填充的JPA /
Hibernate静态元模型属性中提出了类似的问题-NullPointerException,但这一次这两个类位于同一包中。
堆栈跟踪:
java.lang.NullPointerExceptionat org.hibernate.jpa.criteria.path.AbstractPathImpl.get(AbstractPathImpl.java:123)
我的代码:
我用来确保它们将具有的接口getId();
。
package it.unibz.db.hibernate.model;public interface ModelInterface<PK extends Serializable> extends Serializable { PK getId();}
模型类
package it.unibz.db.hibernate.model;@Entity@Table(name ="person")public class Person implements ModelInterface<Integer> { @Id private Integer id; private String name; public Integer getId() { return id; } //other getter and setters}
生成的元模型Person_类
package it.unibz.db.hibernate.model;@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")@StaticMetamodel(Person.class)public abstract class Person_ { public static volatile SingularAttribute<Person, String> name; public static volatile SingularAttribute<Person, Integer> id;}
我随PersonDao继承的通用DAO类
public class GenericDao<E extends ModelInterface<PK>, PK extends Serializable> implements DaoInterface<E, PK> {private Class<E> type;public GenericDao(Class<E> type) { this.type = type; //called as super(ClassName.class); eg. super(Person.class);}public List<E> readBy(SingularAttribute column, String value) throws Exception { EntityManager em = HibernateUtil.getEntityManager(); CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<E> criteria = builder.createQuery(type); Root<E> root = criteria.from(type); criteria.select(root); criteria.where( builder.equal( root.get(column), value )); List<E> entityList = em.createQuery(criteria).getResultList(); em.close(); return entityList; }}
我的一些依赖
hibernate-c3p0 5.0.7。最终版
休眠实体管理器5.0.7。最终版
PostgreSQL 9.4.1207.jre7
hibernate-jpamodelgen 5.0.7。最终版
编辑:
在main方法中运行此代码有效
EntityManager em = HibernateUtil.getEntityManager();CriteriaBuilder builder = em.getCriteriaBuilder();CriteriaQuery<Person> criteria = builder.createQuery(Person.class);Root<Person> root = criteria.from(Person.class);criteria.select(root);criteria.where( builder.equal( root.get(Person_.name), "Can" ));List<Person> entityList = em.createQuery(criteria).getResultList();//do stuff with entityList
但是方法中包含的相同代码将引发NullPointerException
。
public List<Person> readBy(SingularAttribute column, String value) throws Exception { log.debug("Reading entity by"); EntityManager em = HibernateUtil.getEntityManager(); CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<Person> criteria = builder.createQuery(Person.class); Root<Person> root = criteria.from(Person.class); criteria.select(root); criteria.where( builder.equal( root.get(column), value )); List<Person> entityList = em.createQuery(criteria).getResultList(); em.close(); return entityList;}
因此看来问题出在将SingularAttribute
参数传递给方法readBy(SingularAttribute column, Stringvalue)
。
我在main中测试了此代码,并打印了 false
EntityManager em = HibernateUtil.getEntityManager();CriteriaBuilder builder = em.getCriteriaBuilder();CriteriaQuery<Person> criteria = builder.createQuery(Person.class);Root<Person> root = criteria.from(Person.class);System.out.println(root.get(Person_.name) == null); //false
同时,此引发InvocationTargetException
是由NullPointerException
at
引起的root.get(column)
。
//invoked as personDao.test(Person_.name) from mainpublic void test(SingularAttribute column) { EntityManager em = HibernateUtil.getEntityManager(); CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<Person> criteria = builder.createQuery(Person.class); Root<Person> root = criteria.from(Person.class); System.out.println(root.get(column) == null); //InvocationTargetException}
这是应该做的吗?如何将SingularAttribute
对象作为参数传递给方法?
答案1
小编典典HibernateUtil.getEntityManager()
在方法调用之前先以某种方式调用main。
当我从字面上调用方法的空块时,它甚至可以工作init()
。 它可能与类的初始化有关。这是代码片段。
public class HibernateUtil { private static EntityManagerFactory emFactory; private static EntityManager em; private static final Logger log = LoggerFactory.getLogger(HibernateUtil.class); private static final String PERSISTENCE_UNIT = "pt"; static{ log.info("Creating entity manager factory"); emFactory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT); } //calling this from main before PersonDao''s method calls somehow works... public void init(){} //does nothing public static EntityManager getEntityManager(){ if(em != null && em.isOpen()){ closeEntityManager(); } log.debug("Creating new entity manager"); em = emFactory.createEntityManager(); return em; } public static void close() throws Exception { if(em != null && em.isOpen()){ closeEntityManager(); } log.info("Closing entity manager factory"); emFactory.close(); } private static void closeEntityManager(){ log.info("Closing last entity manager"); em.close(); }}
我们今天的关于在Spring Boot中部署Quartz时出现NullPointerException和spring boot multipartfile为null的分享就到这里,谢谢您的阅读,如果想了解更多关于android – 尝试访问Kotlin片段中的视图时出现NullPointerException、apache – 使用spring引发嵌入式ldap服务器时出现NullPointerException、Flink出现network.partition.ProducerFailedException: java.lang.NullPointerException、Hibernate / JPA-访问SingularAttribute参数时出现NullPointerException的相关信息,可以在本站进行搜索。
本文标签: