GVKun编程网logo

在Spring Boot中部署Quartz时出现NullPointerException(spring boot multipartfile为null)

14

以上就是给各位分享在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)

在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

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

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

请帮忙….

最佳答案
@Zorkus:我不确定您在Apache Directory中遇到了什么样的问题,以及它的根本原因是什么,但如果您只需要一个有效的嵌入式Java LDAP服务器来进行Spring Security的集成测试,那么您可能会想考虑一些替代方案.

我最近开始研究替代品,因为尽管投入了大量的时间和精力,但我无法用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

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 / 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是由NullPointerExceptionat
引起的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时出现NullPointerExceptionspring boot multipartfile为null的分享就到这里,谢谢您的阅读,如果想了解更多关于android – 尝试访问Kotlin片段中的视图时出现NullPointerException、apache – 使用spring引发嵌入式ldap服务器时出现NullPointerException、Flink出现network.partition.ProducerFailedException: java.lang.NullPointerException、Hibernate / JPA-访问SingularAttribute参数时出现NullPointerException的相关信息,可以在本站进行搜索。

本文标签: