作家访谈您现在的位置是:湖南作家网>作家访谈

AI 写作与人类创作的未来

来源:《小说评论》 | 王威廉 陈楸帆 郭珊   时间 : 2025-08-01

 

分享到:

c24f92f5-ad0b-4668-aa25-d630eb24a93f.png

一、AI写作的进步与冲击

郭珊:DeepSeek,也就是深度求索,作为一款国内开发的大型语言模型,自问世以来就受到了广泛的关注。自今年一月份问世以来,AI生成的各种诗歌、散文等文学作品在网上广为流传,而关于AI写作能否超越甚至取代人类写作的相关讨论,热度也持续攀升。王威廉、陈楸帆两位老师都在大学里开过课,威廉教的是创意写作,楸帆教的是AI写作,同时也身兼作家与研究者两种身份。这种组合让我对今天的谈话充满了期待。

威廉在最近一次接受采访的时候,提到八年前曾经参加过一个论坛,当时有一个议题是AI写作是否会超越甚至取代传统的作家写作,你当时注意到,参加会议的人分两拨,传统的写作者基本站在人类这一边,科幻作家基本倒向AI那一边。你怎么看待这个有意思的现象?

王威廉:当时陈楸帆、韩松老师他们都站在AI那边;李敬泽老师也在场,我们都站在不相信的那一列。时间过得真快,转眼到了2025年的春天,这一波AI带来的冲击可不是一点点。重新回看多年前的那次相聚,我觉得特别有意思。如果说今天我们再来做这样一场活动,我想传统作家们至少不会像以前那么笃定了。而且对我来说,我可能不会像科幻作家那样坚信人工智能写作会超过人类,但我确实会站在靠近他们的立场上。在我看来,我们不能回避人工智能写作给人类带来的冲击。可能以后,人类与人工智能的关系,不仅仅是作家,更是每个人需要关注的一个非常重要的议题。这种立场的被迫位移,或许正是技术洪流中人文思考的必然转向。DeepSeek的吓人之处就在于博尔赫斯的迷宫叙事与汪曾祺的市井笔触居然能被融合在一起,这曾经是不可想象的。文学忽然面临了大危机,简直是“技术围城”的兵临城下之感。这场变革早已超越文学范畴,直指人类认知体系的底层逻辑。在2025年的春天回望那个关于AI写作进行争论的夜晚,已经恍若文明转型期的微型寓言了。

郭珊:您的态度有这么大的变化,我想一个很重要的因素,就是这些年来以disc为代表的AI写作机器有了非常大的进步。从ChatGPT到DeepSeek,很多人都试过,觉得DeepSeek的语言表达方式更加贴近我们中国人的习惯,表达更加流畅自然。八年前是一个非常有意思的时间节点,楸帆正好也是从那个时间段开始第一次尝试把自己的作品输入一台语言模型,并且创建了属于个人专属的语言模型,名字很有意思,叫陈楸帆2.0。作为有实战经验的人,这么多年下来,你怎么评价陈楸帆2.0的表现?

陈楸帆:那是一个已经过时的项目,很早就废弃了。后面我们又使用了不同的模型,基本上把市面上比较主流的产品都试过了一遍。所以DeepSeek的出现确实给我带来了挺大的震撼。春节期间我一直在研究这个东西,甚至还买了一台新电脑,想尝试一下本地部署,建立一个个人的知识库,让它能够按照我的要求来个性化地定制一些东西。我的感受非常强烈。八年前我们参加的那个活动,其实是微软小冰和《青年文学》一起办的。当时大家觉得AI写作还非常稚嫩,甚至有点可笑,所以没人太在意。但我反而觉得,我们需要更好地了解它,更积极主动地去拥抱它、尝试它,因为只有理解了它,才不会产生抗拒或者恐惧的心理。不过到了现在,我的立场和态度也发生了变化。我现在开始泼冷水了,我觉得我们要谨慎对待这个东西。因为它现在的表达能力、对语言的掌握能力非常接近我们日常的语言表达,甚至超过了很多人。DeepSeek出来之后,我看了很多社交媒体上的内容,其实能分辨出来,很大一部分已经开始用DeepSeek来写作了,至少里面有一部分是用AI创作的,人再修修改改。往后看,AI生成的内容可能会远远超出人类原生的内容。我们以后生活的世界可能就是这样的。那么对于我们人类的创作者,或者对于下一代读者来说,如果他们已经完全可以用AI去替代阅读,直接得到知识点和关键点,就像有人把馍嚼过一遍喂给他们一样,不再自己去读长篇累牍的文章和书,那样的未来会是什么样呢?我们的很多能力会不会退化?包括我自己,在使用的过程中,也感受到了思路会被它带走,而且会对工具产生依赖性。有时候你会懒得自己去想,反正它生成的东西和我的相比也没差那么多,你就会放弃自己主动思考和表达的能力。这一点我觉得非常令人担忧。

之前与AI共创的过程中,我时常反思:创作的主体是人还是机器?如何定义“写作”这个行为本身?从技术层面看,人工智能与人脑的认知机制有相通之处,但并非对人脑的简单模仿。从创作实践看,人与AI是协作关系。AI负责那些相对结构化、数据易于学习的部分,如替换名称、细节扩展、风格变迁等;而统领全局、把控方向、判断,则是人类不可或缺的抽象与审美能力。然而DeepSeek的推理能力却使得AI能够“蚕食”甚至“僭越”到人类创作的领地,最大限度地取代本应由人类意识执行的任务。

在我看来,在发展初期,AI可能被视为一种协作工具,但现阶段,它已经对人类的创造力和主体性构成了潜在的威胁。

二、人机协作与创意的独特性

郭珊:您提到的这种现象非常有意思。我注意到您最近发表了一篇短篇小说,名字叫《神笔》,小说的主角其实也是个小说家,名字叫陈啾凡,有一种很强烈的自传色彩。在这部小说里,语言模型不仅完全推翻了主人的意志,甚至有了自己的意志,生成了小说,还可能在某个时间节点上改变了历史的真实经历。这是一个脑洞大开的设定,我很喜欢。我想很多读者和我一样有这样的困惑:在您小说中提到的那种人类写作被AI操纵甚至被绑架的心理状态,是不是您自己也有很深切的感受呢?

陈楸帆:是的,随着我们与机器的互动越来越深入,有时候你真的很难分辨某个想法到底是来自你自己,还是来自机器。前两天我还和DeepSeek说我想写一个小说,但想要不落俗套,让它给我一个创新的方向。其实我心里已经有了一个方向,但DeepSeek经过一番思考后给出的方向,和我原来想得完全一样。这种情况下,创意到底算是谁的,就很难说了。这种交互过程非常有意思,你给它数据,它再给你数据,你们之间形成了一个非常紧密的反馈回环,到最后“我中有你,你中有我”可能真的很难分辨。它对我们思维的影响是潜移默化的。我想,经验丰富的写作者和思考者尚且如此,那些没什么经验、对工具毫无防范心理的人,可能会更快地被同化掉,尤其是对老年人、年轻人和孩子来说,这一点也让我比较担忧。

在青少年们养成深度阅读、独立思考和创作能力的关键时期,如果过度依赖AI完成学习和创作任务,其相关能力将无法得到充分发展,大脑中负责这些功能的区域也将缺乏必要的训练。这将直接导致他们逐渐丧失自主学习和独立思考的能力,而这本应是教育的核心目标。更进一步,考虑到大多数人倾向于选择最省力的方式,这种过度依赖很可能导致他们成为被动的“无用阶层”,缺乏主观能动性和批判性思维,成为被算法喂养的“数字宠物”。与此同时,少数金字塔顶尖的科技精英则能够有效利用AI以几何倍数放大智力、信息、资源上的优势,同时保持自身的主观能动性、创造力和批判性思维,从而与大众拉开越来越大的差距。这种“超级马太效应”将进一步加剧社会阶层固化,形成难以逾越的鸿沟,一幅割裂的社会图景正在徐徐展开。

面对AI带来的巨大结构性冲击,我们并非无能为力。我认为,当务之急是提升全社会的“AI素养”。在“无条件投降”之前,我们至少要从知识、能力与伦理等角度深入了解AI,了解自己所面对的挑战和机遇。这不仅是一种积极的抵抗姿态,也是保持个体主观能动性、避免被算法同化奴役的关键。我们需要教育公众,尤其是年轻人,认识到AI的局限性,鼓励他们发展独立思考和批判性思维,挑战、超越,而不是盲目接受AI生成的一切内容。

郭珊:您刚才提到的这种隐忧,让我想到威廉之前也有过一个科幻小说集,而且您二位的作品都喜欢设定在近未来,就是在有生之年可以看到的未来。在《野未来》里,我记得有一个故事讲到记忆复制。刚才楸帆提到创意有可能被AI颠覆,您在小说里其实也谈到了类似的一些隐忧,比如我们以为我们的情感是专属的,记忆是专属的,但AI可能会颠覆这一切,对吧?

王威廉:对,我刚才听楸帆说他的态度也有些变化,这让我感到欣喜。他并没有秉持原来的态度,说AI赢了当年的赌约,然后鄙视我们的盲目自信。在今天这样的语境下,我们纯文学作家其实反而需要面对这样的变化。我跟一些年纪稍大一点的作家聊过,他们对技术的了解可能还是比较隔膜。即便他们使用了DeepSeek或者ChatGPT,他们还是会觉得这个东西差得很远。但实际上,我们知道AI逼近的力度是非常大的,所以刚才楸帆说的隐患确实很大。尤其是学生作业的问题,如果一个学生用GPT或者DeepSeek生成一个作业,老师觉得还不错,就给他过了,实际上他什么都没学到。所以我觉得在今天,基础教育可能越来越重要了。我们必须对人类文明有自己的理解和记忆,找到线头。我们的内存肯定没有硬盘那么大,但至少要在记忆中容纳很多线头、很多结构,这样当我们和人工智能对话的时候,才能和它平等交流。否则,你对巴尔扎克一无所知,和它聊天时就会被完全压制。其实人和人工智能的关系是一种此起彼伏的关系。我们对人工智能的了解,我觉得也需要改变一下。我们不能把人工智能仅仅理解成没有情感的机器。尤其是语言大模型,它涉及对语言的训练,涉及一个重要的哲学问题,就是我们对语言的理解。人类的语言显然是存在的家园,在这个家园里,我们的情感、经验都是蕴含在语言结构当中的。所以当人工智能学习这套语言结构的时候,我们不能把它仅仅理解成一个句子或字词的制造者,它也在习得生命的感受,习得经验本身。我们经常谈论超级人工智能,为什么大家对超级人工智能的觉醒坚信不疑?因为在这样复杂的条件下,我们对它的训练,其实是在把我们的生命特质赋予它。所以当面对人工智能的时候,我们会有挫败感。实际上,你面对的是人类的集体智慧,个人的挫败感是很真实的,也是毋庸讳言的。但我们必须想清楚这一点,今天如何和它相处,如何找到一种平衡,就特别重要。

郭珊:现在大家都觉得AI的技术已经提升了,人机协作好像成为一种大势所趋,有一种“打不过就加入”的感觉。不过有些作家朋友心里还是有一层安全底线,他们觉得写作是基于自己独特的经验或情感体验,这是AI无法取代的。但刚才您提到,连创意、情感、经历、记忆,这些原本被认为独特的东西,未来也有可能被AI颠覆。楸帆觉得呢?您作为科幻作家,也会关注很多人类命运共同体的东西,比如在您的代表作《荒潮》里有很多全球语境下的极端天气变化、环境治理、病毒扩散等宏大命题。但如果AI也说“我们作为硅基生命,也是生命共同体,我们对地球负有责任”,并且生成类似的科幻文学作品,您会觉得在题材上被挑战吗?

陈楸帆:其实我使用下来,感觉AI在写作类型文学,尤其是科幻方面,确实非常擅长。因为我更多用它来头脑风暴,生成一些这样的构思,它能在很短的时间内,在很多零散碎片的信息里找到逻辑上的联系,建立世界观的能力比我们人类强太多了。不过现在DeepSeek处理短文本比较强,一旦文本变长,就会发现它不太行,一下子就胡说八道了,很难让它贯彻一个意图从始至终连续地写作下去。可能第一段写得很好,第二段就完全跑偏了,后面就完全找不着北了。但我觉得这是一个假以时日,能在算力和算法上优化的东西。刚才说有些传统作家觉得有底线在,但问题可能是AI生产的文学量足够大之后,我们的读者也会因此被规训成适应AI的风格,说不定他们更喜欢那种风格。而人类作家所谓的“优势”,可能真的会荡然无存。除非你是一个个人标签特别强烈的作家,有人愿意为了你的名字买单,这样的一小撮顶尖作家可能还存在,但大部分作家可能会因此至少丧失部分市场,甚至大部分市场。这是一个非常现实、非常残酷的问题。

AI将对传统的出版业和传媒业产生颠覆性的影响,我预估,理论上它能够取代95%以上的人类从业者。这并非危言耸听,新闻业早已经进入采编审发逐步自动化的快车道,而对于文学创作者而言,除了少数已经建立起稳固个人品牌的头部作家,大多数人的市场将被AI生成的海量内容淹没,并且能够以低价高频的方式进行个性化定制。新作者的出头机会将更加渺茫,写作甚至可能沦为一种自娱自乐的行为,无法再像过去那样承载谋生的希望。与此同时,大众的阅读习惯和审美倾向也面临着被AI创作内容潜移默化“带偏”的风险。在算法推荐机制的主导下,流量更容易向AI快速生成的内容倾斜,人类原创作品将被边缘化,逐渐失去其应有的关注和价值,这是一种“劣币驱逐良币”的文化危机。

三、文学与艺术最重要的是尺度

郭珊:现在DeepSeek这类语言模型似乎对类型小说比较得心应手,国内已经有专门开发的写推理小说的AI,像disc-r,开始和写作平台签约推广,鼓励作家们去使用。其实很早以前,一些头部视频平台在制作自制剧时,就已经引入了大数据来给他们做参考,只不过当时不叫语言模型。精细到什么程度呢?比如古装偶像剧,男女主角在一集当中什么时候相遇、什么时候牵手、什么时候接吻、什么时候掉下悬崖、发生什么激烈的戏剧性反转,都能给出提示,甚至作品投放市场时,最适合找哪个演员来演,它都能给出很有参考性的建议。我也问过一个做编辑的朋友,他觉得自己的位置暂时还算安全,因为他写的是那些婆媳关系剧,除非AI有育儿经、有这种家长里短的经验。但我想,也许真不一定,就像楸帆说的,如果AI吸收的学习模型够庞大,它可能真的会无中生有,哪怕它是个机器人,它也可能自己模拟生成一段想象中的家庭伦理大戏。作为有科幻文学创作,也有传统文学创作经验的作家,威廉有没有类似楸帆这样的担忧呢?

王威廉:这种行业地震即将重构整个创作生态的金字塔基座。当AI能以每分钟成千上万字的速度生成及格线以上的网文,这种恐怖的生产力,让原本靠量产套路文谋生的“腰部作家”陷入集体焦虑。此外,传统的纯文学的道德高地也受到极大冲击,某种意义上的“塌方”只是一个时间问题。但正因为如此,我们必须有一种“对抗性创作”的能力。这种“对抗”倒不是说坚持手工打造,就像面对方便面的畅销,以能够做一碗手擀面为荣,而是说,我们必须深入介入AI的生成,了解它的模式,反抗它的模式,才知道对自己来说,哪种文学能力是最根本性的,是任何东西都无法取代的。在这种认知的基础上,可以尝试着跟AI一起协作,写出新的作品。我的观点是,根据《中华人民共和国著作权法》,著作权属于作者,而AI作为工具本身并不具备法律意义上的“作者”身份。当然,事情并非如此简单,还可以细分:在创作过程中,著作权的归属取决于人类创作者的贡献度。如果一位作家将作品梗概、故事输入AI模型,待结果生成后再进行修改,那么这部作品的著作权应该归于作家本人;而如果仅向AI发出“请帮我写一首爱情诗”这种简单的指令,对生成的结果并无多大贡献,那么著作权不应由作家享有。此外,在使用AI辅助创作时,用户要注意保留原始的生成记录,以应对可能出现的著作权问题。

郭珊:除了著作权的归属问题,还有一个接受度的问题。美国有一个数字艺术大展,有一幅画作《太空歌剧院》得了头奖,很多参赛的艺术家去投诉,说AI的作品怎么能拿头奖。虽然最后得到了认可,但也引发了很大的争议。威廉之前在接受采访的时候也提到,2024年日本最主流的文学大奖之一芥川奖,它的获奖作品《东京都同情塔》,作者承认是AI和他一起完成的,有5%的内容是AI生成的。我想问两位,能不能大胆预测一下,像我们传统主流的大奖,比如茅盾文学奖、鲁迅文学奖,将来会不会向AI作品开放?这个时间是不是很快就会到来?

王威廉:应该会到来。现在有些刊物觉得不能发有AI参与的稿子,我觉得这其实和剽窃还不太一样。AI本身不会自己写,它需要人类给它指令。所以谈论AI文学其实是个伪命题,它不会无端端地开始生成,除非它觉醒了。目前的情况都是人类给它指令,让它写。我觉得最终还是考验人类的创造力,你在和它合作的过程中,你的创造力能不能真正被提升。比如刚才楸帆举的例子,AI的创意和你的有点不谋而合,这时候你还要采用原来的创意吗?肯定要抛弃原来的创意,想想怎么样才能让它也意想不到。所以我觉得,这些大奖不在乎是谁写的,更在乎写得好不好。艺术的价值就在于好不好,这才是现在开始非常重要的一个问题。我们的文学和艺术的尺度、标准问题才是最重要的。人类看一个东西美或丑、好不好、善或恶,这个评价才是最重要的。AI也应该是和谐的一部分,这才是更重要的。而且往后看,AI对文化的决定性意义在于,它是人类文明的一部分,就算它觉醒了,它也是人类文明的一部分,不是说和我们完全没关系。从理想意义上来说,比如说我们要创造出来新的文明、新的生命体,应该是更好的生命,那么这个更好的生命就应该掌握一种艺术,掌握规则、审美,这才是最重要的。

陈楸帆:我觉得这个话题挺有意思的。我会把AI的部分标注出来,比如用什么模型、什么团队、使用过程中有没有经过人的修改,我都会标注清楚。《东京都同情塔》也是用的同样的方式,我在日本的时候还特地找这本书来看,发现它把AI生成的部分用不同的字体标注出来,这是一种比较诚实的做法。所以我觉得像您刚才说的2022年美国的数字艺术展,那位获奖艺术家被诟病的原因就是他隐瞒了使用AI的事实。这是一个伦理问题。在评奖过程中,我们要求选手如实承认是否使用工具,以及工具在作品创作过程中参与的程度。但现在技术上还没有达到,我们怎么样去判别AI,比如学生的作业里,怎么判断他用了多少AI。这是一个需要逐步去解决的问题,大家需要形成一个共识。比如这个奖到底是颁给人的,还是说可以允许人用一定程度的AI。我也相信,像威廉刚才说的,当你知道AI能生成一个和你一样的创意时,你就不想用它了,你会想怎么样突破它。AI能做到合格,但人应该做出一个破格的东西,你要突破它给你计算出来的所谓标准。这也是文学、艺术最美好的地方,它有不确定性,还有复杂的、暧昧的、含混的这些无法被非常清晰定义和计算的部分。这也是为什么AI还需要我们人类,因为我们生产的很多数据是它自己没办法产生的。人类是充满了不确定性的生物。我非常期待有一天我们的某个文学大奖获奖作品至少一部分是有AI参与的,或者是深度参与的,哪怕它不是直接输出内容,而是在过程中参考了AI的一些思路或建议。我觉得这一天会很快到来。

四、AI对人类文明的启示

郭珊:我们今天聊的这个主题是DeepSeek,我今天也让它作为场外的一个特殊的嘉宾,给两位提了一个问题。它想知道两位的作品当中都有很多关于科技与人文关系的探讨,那么两位怎么看待科技的发展对于人类的道德情感、社会结构所带来的冲击和影响?当探讨这些话题的时候,如果AI生成的作品也是探讨上述话题的,那么这样的AI作品又会给人类作者带来什么样的启发呢?

陈楸帆:在不同的社会阶层,人的位置不一样,跟技术的关系也不一样。在进入未来的过程中,会有比较痛苦的过渡期,会产生附带的损害。比如,一部分人的职业、行业被取代,但没有足够的时间和社会资源来帮助他们实现转型。

工业革命时期,人们对机器产生仇恨。可如今没有实体的、可以砸烂的机器,所有东西都以无形的数据形式被存储在云端,所以人会感觉更无力。我想,精神问题会成为普遍现象,这是比较悲观的面向。

比较乐观的一面是,年轻人如果在掌握实用技术的同时保持主观能动性,就不会被轻易带偏。就像庄子说的“物物而不物于物”,人与机器之间应该建立一种生成型的、有机的、互相激发的关系,而不是人依附于它、被它操控。

我认为,对人的生命教育,应该在早期就帮人们确立其主体性。如果学习的目标是应试,学生经过无数考试,最后发现自己学的东西没用了,行业消失了,这时他们会产生巨大的挫败感,成为“空心人”。教育的动机应该是保护好珍贵的、属于人类的特质,告诉孩子“你想成为什么样的人”才是重要的。

躺平是舒服的,把事情交给AI是简单的,那为什么要选择一条更难的路?所谓延迟满足的能力会影响人的一生。如果一个人早早就放弃了对抗式生成的能力,那他以后会变成被动、消极甚至无意义感的人。

最终,我希望人与AI能够在相对平等的状态下共生。共生不是谁压倒谁、谁吞掉谁,而是不同的智能体形成一个更大、更强的结构,在这个结构里,彼此分享信息,进行实时交流。未来,如果AI成为超级智能体,它们需要的某些东西——比如情感体验,也许仍是它们无法产生的。

可以用一个比喻,古希腊神话中的普罗米修斯是盗火者,他从众神那里盗取火种,为人类照亮生活,让人类可以煮熟食物,照亮黑暗。现在的情况其实有点像人类自己擎起了一把火,但这把火照亮的可能是我们自己也不知道是什么的东西。它可能是我们自己的影子,但也可能是一个我们还没有办法确认的同伴,或者是敌人。我希望AI能够成为一种工具,帮助我们看到因为人类的局限性而无法认知的科学、社会学、文学、哲学等各个方面的角落。它不仅可以照亮我们自己,也能照亮更多未知的远方。所以,我希望AI与人类的关系是相互帮助、相互照亮的。

王威廉:现在有一种观点是人文学科都可以取消了,我对此持有非常否定的态度。当然,人文学科在今天确实面临着巨大的挑战,这种挑战主要来自科技的高速发展改变了原有的社会和文化结构。以前,人文学科为我们规范了道德伦理和生活方式,但在今天,这些都受到了挑战。所以,我们还是要重新回到轴心时代的人类文明原点来思考问题,重新追问“我是谁,我从哪里来,要到哪里去”这些问题。科技永远是一种工具属性,现代科技是在现代性的基础上发展起来的,而现代性有一套人文理想,比如启蒙运动,我们追求的是自由、解放等。如果没有这些人文理想作基础,人类可能会陷入万劫不复的境地。

AI可以被视为一个强大的“胃”,帮助我们消化人类过往的信息。现在是一个信息超载的时代,个人的大脑确实不足以处理这么多信息和问题。在AI的加持下,它可以帮助我们消化这些信息,这是一个非常好的事情。我们要学会与它对话,学会与集体智慧对话和学习,让它更好地与我们相处。未来的人的主体不再是过去意义上的以个人为边界的主体,而是每个个人都会接触到人工智能系统,变成一个更强大的个体。善于运用它的人,可能会进入尼采意义上的“超人”时代。不仅仅是人工智能时代,我们还知道基因升级、脑机接口等技术的出现,会带来很多奇异的生命体形式。这一切的到来,都需要我们重新想象人类自己,或者说重新想象一种不同于以往的智慧生命体在这个世界上的意义。

人类本质上是特别盲目的,今天有这个梦想,明天有那个梦想,但这种盲目性才是生命体的可贵之处。我们的迷茫、焦虑与非理性,反而可能会为我们未来的文明形态打下一个非常扎实的基础。

作者单位:

王威廉  中山大学 广州市作家协会

陈楸帆  香港都会大学

郭 珊 《南方日报》社


更多>>文学资讯
    FreeMarker template error (DEBUG mode; use RETHROW in production!): No error description was specified for this error; low-level message: feign.RetryableException: Read timed out executing GET http://content-ms/content/list/channel?siteId=243&channelId=24509&pageSize=5&excludeNum=0&includeTop=2&terminal=1&videoFlag=false&randomFlag=false ---- FTL stack trace ("~" means nesting-related): - Failed at: @_contentList id="wxzxtxt" pageSize="... [in template "site_243//template/content/county_right.html" at line 18, column 41] ---- Java stack trace (for programmers): ---- freemarker.template.TemplateException: [... Exception message was already printed; see it above ...] at cn.rednet.redcloud.template.freemarker.base.impl.BaseTemplateDirective.execute(BaseTemplateDirective.java:31) at freemarker.core.Environment.visit(Environment.java:452) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:102) at freemarker.core.Environment.visit(Environment.java:335) at freemarker.core.Environment.visit(Environment.java:341) at freemarker.core.Environment.process(Environment.java:314) at freemarker.template.Template.process(Template.java:383) at cn.rednet.redcloud.template.service.impl.templatefile.TemplateFileService.generateFileByFile(TemplateFileService.java:681) at cn.rednet.redcloud.template.service.impl.templatefile.TemplateFileService.generateStaticFileForTemplatePage(TemplateFileService.java:163) at cn.rednet.redcloud.template.service.impl.templatefile.TemplateFileService$$FastClassBySpringCGLIB$$48aa813.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) at cn.rednet.redcloud.common.aspect.ClassMethodTimeAspect.aroundMethod(ClassMethodTimeAspect.java:82) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) at cn.rednet.redcloud.template.service.impl.templatefile.TemplateFileService$$EnhancerBySpringCGLIB$$1f864d69.generateStaticFileForTemplatePage() at cn.rednet.redcloud.template.service.impl.TemplatePageServiceImpl.saveAndPublishTemplatePage(TemplatePageServiceImpl.java:315) at cn.rednet.redcloud.template.service.impl.TemplatePageServiceImpl.saveAndPublishIndex(TemplatePageServiceImpl.java:600) at cn.rednet.redcloud.template.service.impl.TemplatePageServiceImpl$$FastClassBySpringCGLIB$$92d4ea80.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) at cn.rednet.redcloud.common.aspect.ClassMethodTimeAspect.aroundMethod(ClassMethodTimeAspect.java:82) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) at cn.rednet.redcloud.template.service.impl.TemplatePageServiceImpl$$EnhancerBySpringCGLIB$$e59ef362.saveAndPublishIndex() at cn.rednet.redcloud.template.schedule.RightSidePageStaticJob.lambda$generateHtml$0(RightSidePageStaticJob.java:82) at java.util.ArrayList.forEach(ArrayList.java:1257) at cn.rednet.redcloud.template.schedule.RightSidePageStaticJob.generateHtml(RightSidePageStaticJob.java:79) at cn.rednet.redcloud.template.schedule.RightSidePageStaticJob.generate(RightSidePageStaticJob.java:66) at cn.rednet.redcloud.template.schedule.RightSidePageStaticJob.execute(RightSidePageStaticJob.java:49) at com.xxl.job.core.thread.JobThread.run(JobThread.java:152) Caused by: feign.RetryableException: Read timed out executing GET http://content-ms/content/list/channel?siteId=243&channelId=24509&pageSize=5&excludeNum=0&includeTop=2&terminal=1&videoFlag=false&randomFlag=false at feign.FeignException.errorExecuting(FeignException.java:268) at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:131) at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:91) at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100) at org.springframework.cloud.openfeign.FeignCachingInvocationHandlerFactory$1.proceed(FeignCachingInvocationHandlerFactory.java:66) at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:351) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64) at org.springframework.cloud.openfeign.FeignCachingInvocationHandlerFactory.lambda$create$1(FeignCachingInvocationHandlerFactory.java:53) at com.sun.proxy.$Proxy204.getContentListByChannel(Unknown Source) at sun.reflect.GeneratedMethodAccessor424.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) at cn.rednet.redcloud.common.aspect.ClassMethodTimeAspect.aroundMethod(ClassMethodTimeAspect.java:82) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:220) at com.sun.proxy.$Proxy205.getContentListByChannel(Unknown Source) at cn.rednet.redcloud.template.freemarker.directive.ContentListDirective.execute(ContentListDirective.java:191) at cn.rednet.redcloud.template.freemarker.base.impl.BaseTemplateDirective.execute(BaseTemplateDirective.java:27) ... 61 more Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) at java.io.BufferedInputStream.read(BufferedInputStream.java:345) at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678) at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) at feign.Client$Default.convertResponse(Client.java:110) at feign.Client$Default.execute(Client.java:106) at org.springframework.cloud.openfeign.loadbalancer.LoadBalancerUtils.executeWithLoadBalancerLifecycleProcessing(LoadBalancerUtils.java:57) at org.springframework.cloud.openfeign.loadbalancer.RetryableFeignBlockingLoadBalancerClient.lambda$execute$2(RetryableFeignBlockingLoadBalancerClient.java:168) at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:329) at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:225) at org.springframework.cloud.openfeign.loadbalancer.RetryableFeignBlockingLoadBalancerClient.execute(RetryableFeignBlockingLoadBalancerClient.java:114) at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:121) ... 90 more

湖南省作家协会 | 版权所有 : 湘ICP备05001310号
Copyright ? 2005 - 2012 Frguo. All Rights Reserved