最近在学习Web Api的时候,初次尝试发布,却遇到发布遇到错误的问题。
打开错误目录,发现如下:
2020/3/17 10:21:16
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 Microsoft.VisualStudio.ApplicationCapabilities.Publish.Provider.DefaultPublishTabProvider.InitializeProvider(IVsHierarchy hierarchy)
在 Microsoft.VisualStudio.ApplicationCapabilities.Publish.Provider.DefaultPublishTabProvider.CreateViewAsync(IVsHierarchy project, IAsyncServiceProvider serviceProvider, CancellationToken cancellationToken)
在 Microsoft.VisualStudio.ApplicationCapabilities.Publish.Provider.ManagedPublishProvider.d__3.MoveNext()
===================
后来尝试了各种web项目,都发布失败了。解决办法如下:
C:\用户\用户名\AppData\Local\Microsoft\VisualStudio\,把里面文件全部删了。(注:路径中有隐藏文件,不要忘记打开隐藏的项目。)
之后会发现VS全部回到第一次配置的状态,这时,再右键发布就不会出错了。
最近在学习Web Api的时候,初次尝试发布,却遇到发布遇到错误的问题。打开错误目录,发现如下:2020/3/17 10:21:16System.NullReferenceException: 未将对象引用设置到对象的实例。在 Microsoft.VisualStudio.ApplicationCapabilities.Publish.Provider.DefaultPublishTab...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java
web
开发中各种技术的应用,循序渐进地引导读者快速掌握java
web
开发。.
本书内容全面,涵盖了从事java
web
开发所应掌握的所有知识。在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的
实例
和实验来验证并运用本书的知识。.. 本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前
web
开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java
web
开发的学习用书,还可以作为从事java
web
开发的程序员的参考用书和必备手册。此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java
web
的学习与开发上.
第1部分 xml篇.
第1章 xml与dtd 2
1.1 xml的产生 2
1.2 w3c介绍 2
1.3 关于xml的几个问题 3
1.4 xml与html的比较 4
1.4.1 xml将数据与显示分开 5
1.4.2 xml对文档的格式要求更加严格 6
1.4.3 xml有且只能有一个根元素 6
1.5 xml的编辑工具 7
1.6 xml文档 8
1.6.1 xml声明 9
1.6.2 文档类型声明 10
1.6.3 元素 11
1.6.4 注释 15
1.6.5 处理指令 15
1.6.6 空白处理 16
1.6.7 行尾处理 16
1.6.8 语言标识 16
1.7 格式良好的xml 17
.1.8 dtd 18
1.8.1 在xml文档中引入dtd 18
1.8.2 dtd的结构 21
1.9 有效的xml 35
1.10 xml处理器/解析器 35
1.11 小结 36
第2章 xml名称空间 38
2.1 声明名称空间 38
2.2 名称空间在元素和属性中的运用 39
2.2.1 名称空间在元素中的运用 39
2.2.2 默认名称空间 41
2.2.3 名称空间在属性中的运用 42
2.3 名称空间和dtd 43
2.4 小结 45
第3章 对xml文档进行分析 46
3.1 dom、sax和jaxp 46
3.2 使用dom解析xml文档 47
3.2.1 dom结构模型 47
3.2.2 dom解析器工厂 50
3.2.3 jaxp的
错误
类和异常类 52
3.2.4 用dom解析xml文档
实例
53
3.3 使用sax解析xml文档 65
3.3.1 sax的处理机制 66
3.3.2 配置sax解析器 69
3.3.3 sax解析器工厂 70
3.3.4 sax的异常类 71
3.3.5 errorhandler接口 73
3.3.6 使用sax解析xml文档
实例
74
3.4 jdom 83
3.4.1 下载并配置jdom 83
3.4.2 jdom
api
介绍 84
3.5 dom4j 88
3.5.1 下载并配置dom4j 88
3.5.2 dom4j
api
介绍 88
3.5.3 第一个
实例
92
3.5.4 第二个
实例
94
3.6 解析名称空间 96
3.6.1 dom和名称空间 96
3.6.2 sax和名称空间 97
3.6.3 jdom和名称空间 98
3.6.4 dom4j和名称空间 98
3.7 小结 99
第4章 xsl转换 101
4.1 xslt概述 101
4.2 xalan处理器 105
4.3 模板规则 106
4.4 [xsl:apply-templates]元素 107
4.5 [xsl:value-of]元素 108
4.6 [xsl:for-each]元素 110
4.7 匹配节点的模式 111
4.8 mode属性 113
4.9 内置的模板规则 114
4.10 对空白的处理 115
4.11 xpath语言 116
4.11.1 xpath上下文 116
4.11.2 位置路径 117
4.11.3 表达式 121
4.11.4 核心函数库 123
4.12 创建结果树 126
4.12.1 创建元素和属性 127
4.12.2 创建文本 131
4.12.3 创建处理指令 133
4.12.4 创建注释 133
4.12.5 复制节点 134
4.12.6 输出格式化的数字 135
4.13 条件处理 144
4.13.1 [xsl:if] 144
4.13.2 [xsl:choose] 145
4.14 排序 146
4.15 变量和参数 150
4.15.1 变量 150
4.15.2 参数 152
4.16 命名模板 153
4.17 合并样式表 154
4.17.1 导入样式表 154
4.17.2 包含样式表 155
4.18 模板规则冲突的解决 156
4.19 [xsl:output]元素 157
4.19.1 指定输出文档的格式 158
4.19.2 输出xml声明 158
4.19.3 输出文档类型定义 159
4.19.4 输出cdata段 160
4.19.5 指定文档缩进 161
4.19.6 指定媒体类型 161
4.20 xslt中的函数 162
4.21 数字格式化 162
4.22 查询和分组 164
4.23 处理多个输入文档 172
4.24 jaxp中的xslt
api
175
4.24.1 转换器工厂 175
4.24.2 transformer和templates 176
4.24.3 一个例子 178
4.25 小结 179
第2部分 servlet篇
第5章 servlet与tomcat 182
5.1 servlet与servlet容器 182
5.2 servlet容器的分类 183
5.3 servlet和其他技术的比较 183
5.4 tomcat介绍 183
5.5 tomcat的安装与配置 184
5.5.1 安装tomcat 185
5.5.2 运行tomcat 186
5.5.3 tomcat启动分析 189
5.5.4 tomcat的体系结构 191
5.6 tomcat的管理程序 193
5.6.1 admin
web
应用程序 193
5.6.2 manager
web
应用程序 194
5.7 小结 195
第6章 servlet技术 196
6.1 servlet
api
196
6.1.1 servlet接口 196
6.1.2 servlet相关接口与实现类 197
6.2 几个
实例
205
6.2.1
实例
一:simplehello 205
6.2.2
实例
二:welcomeyou 210
6.2.3
实例
三:outputinfo 216
6.2.4
实例
四:loginservlet 220
6.3 servlet异常 223
6.3.1 servletexception类 224
6.3.2 unavailableexception类 224
6.4 servlet生命周期 224
6.5 servlet上下文 226
6.5.1 servletcontext接口 226
6.5.2 页面访问量统计
实例
228
6.6 请求转发 231
6.6.1 requestdispatcher接口 232
6.6.2 得到requestdispatcher
对象
232
6.6.3 请求转发的
实例
233
6.6.4 sendredirect()和forward()方法的区别 238
6.7 小结 239
第7章
web
应用程序的部署 240
7.1 配置任意目录下的
web
应用程序 240
7.2 war文件 242
7.3 tomcat中servlet的另一种运行方式 244
7.4 与servlet配置相关的元素 247
7.4.1 [servlet]元素及其子元素 247
7.4.2 [servlet-mapping]元素及其子元素 249
7.5 一个
实例
250
7.6 小结 253
第8章 数据库访问 254
8.1 驱动程序的类型 254
8.1.1 jdbc-odbc桥 254
8.1.2 部分本地
api
java驱动程序 255
8.1.3 jdbc网络纯java驱动程序 255
8.1.4 本地协议的纯java驱动程序 256
8.2 安装数据库 256
8.3 jdbc
api
260
8.3.1 加载并注册数据库驱动 261
8.3.2 建立到数据库的连接 263
8.3.3 访问数据库 264
8.3.4 事务处理 289
8.3.5 可滚动和可更新的结果集 296
8.4 jdbc数据源和连接池 299
8.5 mysql对中文的处理 302
8.6 小结 302
第9章 会话跟踪 303
9.1 用于会话跟踪的技术 303
9.1.1 ssl会话 304
9.1.2 cookies 304
9.1.3 url重写 305
9.2 java servlet
api
的会话跟踪 306
9.2.1 httpsession接口 306
9.2.2 session的生命周期 307
9.2.3 cookie的应用 319
9.2.4 httpsessionbindinglistener接口 328
9.2.5 在线人数统计程序 329
9.3 小结 335
第10章 servlet的异常处理机制 337
10.1 声明式异常处理 338
10.1.1 http
错误
代码的处理 338
10.1.2 java异常的处理 341
10.2 程序式异常处理 343
10.2.1 在try-catch语句中处理异常 343
10.2.2 使用requestdispatcher来处理异常 346
10.3 小结 349
第11章 开发线程安全的servlet 350
11.1 多线程的servlet模型 350
11.2 线程安全的servlet 351
11.2.1 变量的线程安全 351
11.2.2 属性的线程安全 360
11.3 singlethreadmodel接口 362
11.4 小结 363
11.5 思考题 363
第3部分 jsp篇
第12章 jsp技术 366
12.1 jsp简介 366
12.2 jsp的运行机制 366
12.3 jsp的语法 371
12.3.1 指令元素(directive elements) 371
12.3.2 脚本元素(scripting elements) 374
12.3.3 动作元素(action elements) 376
12.3.4 注释 383
12.4 jsp的隐含
对象
383
12.4.1 pagecontext 384
12.4.2 out 385
12.4.3 page 385
12.4.4 exception 386
12.5
对象
和范围 387
12.6 留言板程序 389
12.7 留言板管理程序 397
12.8 jsp文档 402
12.8.1 jsp文档的标识 404
12.8.2 jsp文档中的元素语法 404
12.9 小结 407
第13章 jsp与javabean 409
13.1 javabean简介 409
13.1.1 属性的命名 409
13.1.2 属性的类型 411
13.2 在jsp中使用javabean 412
13.2.1 [jsp:usebean] 412
13.2.2 [jsp:setproperty] 413
13.2.3 [jsp:getproperty] 414
13.2.4 示例 414
13.3 网上书店程序 418
13.4 小结 440
第14章 jsp开发的两种模型 441
14.1 模型1 441
14.2 模型2 445
14.3 小结 449
第15章 标签库(tag library) 450
15.1 标签库
api
450
15.1.1 标签的形式 451
15.1.2 tag接口 451
15.1.3 iterationtag接口 453
15.1.4 bodytag接口 454
15.2 标签库描述符 455
15.2.1 [taglib]元素 456
15.2.2 [validator]元素 457
15.2.3 [listener]元素 457
15.2.4 [tag]元素 458
15.2.5 [tag-file]元素 460
15.2.6 [function]元素 461
15.3 传统标签的开发 462
15.3.1
实例
一:[hello]标签 462
15.3.2
实例
二:[max]标签 465
15.3.3
实例
三:[greet]标签 467
15.3.4
实例
四:[switch]标签 469
15.3.5
实例
五:[iterate]标签 473
15.4 简单标签的开发 479
15.4.1 simpletag接口 479
15.4.2
实例
一:[welcome]标签 480
15.4.3
实例
二:[max_ex]标签 481
15.5 小结 483
第16章 表达式语言(el) 484
16.1 语法 484
16.1.1 “[ ]”和“.”操作符 484
16.1.2 算术操作符 484
16.1.3 关系操作符 485
16.1.4 逻辑操作符 485
16.1.5 empty操作符 485
16.1.6 条件操作符 485
16.1.7 圆括号 486
16.1.8 操作符的优先级 486
16.2 隐含
对象
486
16.3 命名变量 487
16.4 保留的关键字 488
16.5 函数 488
16.6 小结 489
第17章 jsp标准标签库(jstl) 490
17.1 jstl简介 490
17.2 配置jstl 491
17.3 core标签库 491
17.3.1 一般用途的标签 492
17.3.2 条件标签 496
17.3.3 迭代标签 498
17.3.4 url相关的标签 501
17.4 i18n标签库 506
17.4.1 国际化标签 506
17.4.2 格式化标签 511
17.5 sql标签库 520
17.5.1 [sql:setdatasource] 520
17.5.2 [sql:query] 521
17.5.3 [sql:param] 524
17.5.4 [sql:dateparam] 525
17.5.5 [sql:update] 526
17.5.6 [sql:transaction] 527
17.6 xml标签库 529
17.6.1 核心操作 529
17.6.2 流程控制 532
17.6.3 转换操作 536
17.7 functions标签库 539
17.7.1 fn:contains 539
17.7.2 fn:containsignorecase 539
17.7.3 fn:startswith 540
17.7.4 fn:endswith 541
17.7.5 fn:indexof 541
17.7.6 fn:replace 542
17.7.7 fn:substring 543
17.7.8 fn:substringbefore 544
17.7.9 fn:substringafter 544
17.7.10 fn:split 545
17.7.11 fn:join 546
17.7.12 fn:tolowercase 547
17.7.13 fn:touppercase 547
17.7.14 fn:trim 548
17.7.15 fn:escapexml 548
17.7.16 fn:length 549
17.8 小结 549
第18章 标签文件(tag files) 551
18.1 标签文件的语法 551
18.2 一个简单的标签文件 551
18.3 标签文件的隐含
对象
554
18.4 标签文件的指令 555
18.4.1 tag指令 555
18.4.2 attribute指令 556
18.4.3 variable指令 557
18.5 标签文件
实例
讲解 558
18.5.1
实例
一:[welcome]标签 558
18.5.2
实例
二:[tohtml]标签 559
18.6 [jsp:invoke]动作元素 561
18.7 [jsp:dobody]动作元素 562
18.8 小结 562
第4部分 应用篇
第19章 使用log4j进行日志操作 564
19.1 log4j介绍 564
19.1.1 logger组件 564
19.1.2 appender组件 566
19.1.3 layout组件 567
19.2 使用log4j 568
19.3 log4j使用
实例
572
19.4 ndc和mdc 585
19.5 小结 587
第20章 filter在
web
开发中的应用 588
20.1 过滤器概述 588
20.2 filter
api
589
20.2.1 filter接口 589
20.2.2 filterconfig接口 590
20.2.3 filterchain接口 590
20.3 过滤器的部署 591
20.4 过滤器的开发 592
20.5 对用户进行统一验证的过滤器 594
20.6 对请求和响应数据进行替换的
20.6 过滤器 600
20.7 小结 609
第21章 中文乱码问题与国际化 610
21.1 中文乱码问题产生的由来 610
21.1.1 常用字符集 610
21.1.2 对乱码产生过程的分析 612
21.2 中文乱码问题的解决方案 614
21.3 使用过滤器解决中文问题 616
21.4 让tomcat支持中文文件名 620
21.5 国际化与本地化 621
21.5.1 locale 621..
21.5.2 资源包 623
21.5.3 编写国际化的
web
应用程序 625
21.6 小结 629
第22章 使用jbuilder2005开发
web
第22章 应用程序 630
22.1 jbuilder2005简介 630
22.2 集成开发环境介绍 631
22.2.1 菜单栏 631
22.2.2 主工具栏 632
22.2.3 工程工具栏和工程窗口 632
22.2.4 结构窗口 633
22.2.5 文件标签和内容窗口 634
22.2.6 文件视图标签 634
22.2.7 消息窗口 637
22.3 jbuilder2005的基本配置 638
22.3.1 配置jdk 638
22.3.2 配置
web
服务器 640
22.4 文件的上传和下载 642
22.4.1 基于表单的文件上传 642
22.4.2 文件上传格式分析 643
22.4.3 commons-fileupload组件 644
22.4.4 文件上传
实例
646
22.4.5 文件下载
实例
656
22.5 给图片添加水印和文字 664
22.6 小结 667
第23章 开发安全的
web
应用程序 668
23.1 概述 668
23.2 理解验证机制 669
23.2.1 http basic authentication 669
23.2.2 http digest authentication 670
23.2.3 https client authentication 670
23.2.4 form based authentication 671
23.3 声明式安全 671
23.3.1 [security-constraint]元素 671
23.3.2 [login-config]元素 673
23.3.3 基本验证的实现 674
23.3.4 基于表单验证的实现 676
23.3.5 使用数据库保存用户名和密码 678
23.4 程序式安全 682
23.5 sql注入攻击的防范 685
23.6 小结 687
第24章
web
应用程序开发
实例
688
24.1 图像的缩放 688
24.2 如何动态生成验证码 692
24.3 如何避免表单的重复提交 696
24.3.1 在客户端避免表单的重复提交 697
24.3.2 在服务器端避免表单的重复
24.3.2 提交 700
24.4 小结 706
第25章 使用ant辅助
web
应用程序
第25章 开发 707
25.1 ant介绍 707
25.2 安装并配置ant 708
25.2.1 下载并安装ant 708
25.2.2
设置
ant的运行环境 708
25.3 编写ant的构建文件 709
25.3.1 准备工作 709
25.3.2 工程([project]) 712
25.3.3 目标([target]) 713
25.3.4 任务 714
25.3.5 path-like structures 728
25.3.6
引用
(references) 729
25.4 部署到tomcat 730
25.5 运行ant 732
25.6 小结 732
第26章 xml和xslt在
web
开发中的
第26章 应用 733
26.1 功能概述 733
26.2 程序设计 733
26.2.1 软件架构 733
26.2.2 页面设计 735
26.2.3 数据库设计 747
26.3 程序实现 749
26.3.1 org.sunxin.guestbook 749
26.3.2 org.sunxin.guestbook.beans 750
26.3.3 org.sunxin.guestbook.util 758
26.3.4 org.sunxin.guestbook.parser 762
26.3.5 org.sunxin.guestbook.controller 765
26.3.6 org.sunxin.guestbook.view 787
26.3.7 page.xsl 791
26.3.8
web
.xml 797
26.3.9 context.xml 798
26.4 小结 798
附录a 快速掌握html 799
附录b 解析http 820
附录c server.xml文件 833
附录d
web
.xml文件 840
索引 852...
场景:办公室采用联合开发模式,其他同事采用QT(版本为5.12.9),我采用VS(版本为VS2017)+QT平台编译。碰到问题如下:
代码在QT平台编译且运行正常,但采用VS中插件Qt VS Tools的Open QT Project File打开.pro文件转成VS平台时弹出“
未
将
对象
引用
设置
到
对象
的
实例
”。我第一反应是最近提交的代码有问题导致(因为之前代码,我从QT转VS正常)。然后我下拉以前正常的代码,转的过程中发现同样存在该问题!!!
问题排查:
1、首先问百度,以下方法均试过,没用(可能我不是那
相信几乎所有学过
ASP.NET
的朋友都遇到过这个问题:
未
将
对象
引用
设置
到
对象
的
实例
。下面,就来看一下到底都有哪些原因会造成这个问题的出现和解决方法
一、数据库方面
1、ViewState
对象
为Null。
2、DateSet 空。
3、sql语句或Datebase的原因导致DataReader空。
4、声明字符串变量时
未
赋空值就应用变量。
5、
未
用new初始化
对象
。
** 原因: ** 在CodeFirst的时候,对于一对一的关系,如果在两个Entity中都互相添加了对方作为导航属性就会出现这样的
错误
。新建
Api
Controller的时候提示“无法检索元数据”,新建MVCController的时候回提示“
未
将
对象
引用
设置
到
对象
的
实例
”
解决方案:删掉其中的一个导航属性
在
ASP.NET
中使用这个[“sqlconstr”]连接字符串,应该在项目的
Web
应用根目录下的
web
.config中定义。
代码和项目生成的代码大同小异:
系统的代码:<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilena
### 回答1:
"System.NullReferenceException:
未
将
对象
引用
设置
到
对象
的
实例
" 是一个常见的程序
错误
,意味着您尝试使用一个空
对象
的
引用
,而不是
实例
化该
对象
。这通常是由于以下原因之一引起的:
1.
对象
未
被正确初始化或已被释放。
2.
对象
被赋予了空值或被
设置
为null。
3.
对象
的作用域超出了范围,或者在使用它之前已被销毁。
要解决此
错误
,您可以检查代码并确保所有
对象
都被正确
实例
化并在使用之前进行了检查。
### 回答2:
system.nullreferenceexception是一个常见的运行时异常,意味着程序尝试使用一个
未
初始化的
对象
实例
,或使用一个已经被
设置
为null的
对象
实例
。这种
错误
通常是由程序员在编写代码时出现的
错误
,通常是由于代码中缺少了必要的
对象
初始化或者获取不正确的
对象
引用
。
例如,我们可以考虑一个简单的
C#
程序,其中我们尝试访问一个
未
初始化的
对象
实例
:
class Program
static void Main(string[] args)
MyClass myClass;
myClass.DoSomething(); // Throws System.NullReferenceException
class MyClass
public void DoSomething()
Console.WriteLine("Hello, World!");
在上面的代码中,我们试图使用一个
未
初始化的MyClass
对象
来调用DoSomething()方法。这将导致.NET运行时抛出System.NullReferenceException,因为myClass并没有被初始化为一个
对象
实例
。
解决这个问题的方法之一是确保我们在使用
对象
之前对其进行正确的初始化,例如:
class Program
static void Main(string[] args)
MyClass myClass = new MyClass(); // Instantiate MyClass object
myClass.DoSomething(); // Call DoSomething() method
class MyClass
public void DoSomething()
Console.WriteLine("Hello, World!");
在上面的代码中,我们通过
实例
化一个新的MyClass
对象
,并将其分配给myClass变量,从而解决了System.NullReferenceException异常。现在我们可以安全地调用DoSomething()方法,因为我们已经初始化了myClass
对象
。
总之,System.NullReferenceException往往是由于程序员在编写代码时出现的
错误
,通常是由于代码中缺少了必要的
对象
初始化或者获取不正确的
对象
引用
。要解决这个问题,我们需要确保在使用
对象
之前对其进行正确的初始化,避免使用空
引用
或
未
初始化的
对象
。
### 回答3:
system.nullreferenceexception是指在程序运行时,尝试访问一个空
对象
或
未
初始化的
对象
所引发的异常。这种异常通常是由程序员的疏忽、编码
错误
或逻辑
错误
所引发的。
当发生system.nullreferenceexception异常时,程序会停止执行,并显示
未
将
对象
引用
设置
到
对象
的
实例
错误
消息。这通常意味着程序在尝试访问某个
对象
时发现该
对象
为空或
未
初始化。
为了避免system.nullreferenceexception异常的发生,程序员应该在使用
对象
之前对其进行初始化,并在使用
对象
时进行必要的判断,以确保
对象
不为空。
除了遵循良好的编码规范外,程序员还可以使用调试工具来帮助识别并解决system.nullreferenceexception异常。例如,在Visual Studio调试中,程序员可以使用调试器来跟踪程序运行时发生的异常,并查看堆栈跟踪信息,以确定引起异常的代码行。
总之,system.nullreferenceexception异常是一种常见的运行时异常,程序员应该注意避免它的发生,并使用调试工具来帮助解决它。