pipLine 中的 process 遇到一个空指针异常
@黄亿华 你好,想跟你请教个问题:
@RestController @RequestMapping("/magic") public class WebMagicController implements Pipeline{ @Autowired private StudentService studentService; @ResponseBody @RequestMapping("/find/{id}") public Student find(@PathVariable("id") Long id) { Student student = studentService.get(id); return student; } @RequestMapping("/run") public void run() { testSave();//输出 false Spider.create(new QiuBaiPageProcessor()).addUrl("http://www.qiushibaike.com/textnew/") // 开启5个线程抓取 .thread(5).addPipeline(new WebMagicController()) // 启动爬虫 .run(); } @Override public void process(ResultItems resultItems, Task task) { List<String> ht_l = resultItems.get("list"); saveStudent(ht_l);//输出为 true,报出 NullPointerException; } public void testSave(){ System.err.println(studentService==null); } public void saveStudent(List<String> ht_l ) { System.err.println(studentService==null); List<Student> lists=new ArrayList<Student>(); for (String string : ht_l) { Student student=new Student(); student.setName(string); lists.add(student); } studentService.saveAll(lists);//这里的 studentService 为空 } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
也没有set方法吧
请问你知道如何解决这null的问题吗?
传递service参数进去,
WebMagicController 这是以线程的形式new的,注入不进去的