为什么这会给我一个错误:
angular.module('app')
.config(function($routeProvider, $locationProvider, $httpProvider, $location) {
Run Code Online (Sandbox Code Playgroud)
未捕获错误:未知提供商:来自应用的$ location
但是这条线路没有?
angular.module("app")
.factory("SomeResource",
function($q, $resource, $http, $location, AuthenticationService, Base64) {
Run Code Online (Sandbox Code Playgroud)
这是相同的应用程序.可以config
只得到供应商和factory
唯一获得非供应商?
我对在 terraform 文档中读到的内容有点困惑。以下是关于模块的说明:
https://www.terraform.io/docs/language/modules/index.html
模块是一起使用的多种资源的容器。模块由保存在一个目录中的 .tf 和/或 .tf.json 文件的集合组成。
以下是关于提供商的说明: https ://www.terraform.io/docs/language/providers/requirements.html
要求提供者
每个 Terraform 模块必须声明它需要哪些提供程序,以便 Terraform 可以安装和使用它们。提供者要求在 required_providers 块中声明。
提供程序要求由本地名称、源位置和版本约束组成:
Run Code Online (Sandbox Code Playgroud)terraform { required_providers { mycloud = { source = "mycorp/mycloud" version = "~> 1.0" } } }
我对此感到困惑,因为我从未required_providers
在任何模块中指定过,即使我正在使用提供程序并且它说我必须这样做。直到今天我什至不知道文档这么说。
那么我是否误解了文档,或者文档是错误的?我的每个模块required_providers
是否需要?我的 terraform 配置在没有它们的情况下肯定可以工作,那么它们是否默认为某些内容?如果是,如何以及在哪里?
我花了更多的研究比我自己想要的更多,所以我将在这里发布一个全面的答案.似乎这样做的信息分散在许多不同的网站上,我想把它放在一个地方. 这个答案 可能是一回事,但我的眼睛茫然,因为它在Java字符串中,而不是在html模板中.这是问题:
我正在渲染PDF,我想在页面底部写一个页脚,上面写着"Page n of m",其中"n"是您所在的页码,"m"是文档中的总页数.我怎么做?
我发现在我的代码中调试Clojure错误与我使用的所有其他编程语言相比非常困难.我的主要编程语言是Java,我对Clojure很新.我写Clojure的大部分时间都花在试图弄清楚"为什么我得到这个错误?" 我想改变这一点.我正在使用CounterClockWise作为我的主要IDE.我不知道如何使用Emacs(但是?).
这是一个例子:
(ns cljsandbox.core)
(def l [1 2 3 1])
(defn foo
[l]
(->> l
(group-by identity)
;vals ;commented out to show my intent
(map #(reduce + %))))
Run Code Online (Sandbox Code Playgroud)
在这里,我错误地认为group-by
返回列表列表,但它实际上返回了一个地图,<key, list<value>>
或者你用Java术语表示它.这会显示一条错误消息:
ClassCastException clojure.lang.PersistentVector无法强制转换为java.lang.Number clojure.lang.Numbers.add(Numbers.java:126)
这不是很有用,因为没有堆栈跟踪.如果我输入(e)
它说:
java.lang.ClassCastException: clojure.lang.PersistentVector cannot be cast to java.lang.Number
at clojure.lang.Numbers.add (Numbers.java:126)
clojure.core$_PLUS_.invoke (core.clj:944)
clojure.core.protocols/fn (protocols.clj:69)
clojure.core.protocols$fn__5979$G__5974__5992.invoke (protocols.clj:13)
clojure.core$reduce.invoke (core.clj:6175)
cljsandbox.core$foo$fn__1599.invoke (core.clj:10)
clojure.core$map$fn__4207.invoke (core.clj:2487)
clojure.lang.LazySeq.sval (LazySeq.java:42)
Run Code Online (Sandbox Code Playgroud)
我不知道如何从这个错误消息中理解,"你以为你是在传递一个列表列表map
但是你真的传递了一个map数据类型".堆栈跟踪显示问题是在内部报告的reduce
,而不是group-by
IMO 内部的报告,这不是我作为人类犯下的错误.这就是程序发现错误的地方.
这些问题可能需要15分钟才能解决.我怎样才能减少时间?
我知道期望动态语言能够捕获这些错误太过分了.但是,我觉得像javascript这样的其他动态语言的错误消息更有帮助.
我在这里非常绝望,因为我现在已经在clojure编写1-2个月了,我觉得我应该更好地解决这些问题.我尝试使用:pre
/ :post
on函数但是有一些问题 …
我们目前使用Glassfish 3,我真的想使用Java 8.我尝试升级到Glassfish 4,但我在Glassfish 4代码中遇到了两个错误,所以我不得不恢复到Glassfish 3. Glassfish 3是否可以使用Java 8或将我必须升级我的应用程序容器?
我正在使用逆时针,但不幸的是他们尚未实现此功能.您有什么想法如何以"lispy"方式自动格式化我的Clojure代码?
我正在尝试升级到Jersey 2.0并且我遇到了很多麻烦,因为泽西岛的groupIds和artifactIds已经完全改变了,我在Jersey文档中找不到迁移计划.
这是我的pom.xml以前看起来的样子,并编译好了:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.17</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server-linking</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.17.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这些应该改成什么? 这个无关的StackOverflow问题有点帮助,但我很难找到@Ref
注释移动到的地方.
@Ref
不再存在,或者至少在文档中没有提到它.现在你使用了UriBuilder
. HTTPBasicAuthFilter
已更名为HttpBasicAuthFilter
.注意大写.Client client = Client.create();
已经成为 Client client = ClientBuilder.newClient();
这个:
String json = client
.resource(getBaseUrl() + url)
.accept(MediaType.APPLICATION_JSON_TYPE)
.get(String.class);
Run Code Online (Sandbox Code Playgroud)
已经成为
String json = client
.target(getBaseUrl())
.path(url)
.request(MediaType.APPLICATION_JSON_TYPE)
.get(String.class);
Run Code Online (Sandbox Code Playgroud)我试图理解此崩溃报告,但无法理解,因为函数“applySettings()”不是从 init() 调用的,如崩溃报告中所示。Swift 中的“部分申请closure#1”是什么?
这是 init() 函数所需的代码。
public override init()
{
super.init()
discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [AVCaptureDevice.DeviceType.builtInWideAngleCamera, AVCaptureDevice.DeviceType.builtInDualCamera, AVCaptureDevice.DeviceType.builtInTelephotoCamera, AVCaptureDevice.DeviceType.builtInDualWideCamera,
AVCaptureDevice.DeviceType.builtInTripleCamera,
AVCaptureDevice.DeviceType.builtInUltraWideCamera], mediaType: AVMediaType.video, position: .unspecified)
detectLenses()
checkForDeviceAuthorization()
setZoomParams()
sessionQueue.async { [unowned self] in
self.configureSession()
}
}
Run Code Online (Sandbox Code Playgroud) 我看到很多关于如何让Intellij打破异常的问题.我正在尝试做一些不同的事情:我想在断点处抛出异常,以便我可以看到如果在该代码处发生异常将会发生什么.
我已经找到了强迫这种方法的方法.例如,如果我有一个名为的变量willBeUsed
,我可以点击一个断点并添加一个表示的表willBeUsed = null
.这最终会触发NullPointerException .
但我处在一种情况,我想抛出一个IOException
看看会发生什么.我无法欺骗我的代码.当我添加一个表示throw new IOException()
它给我一个错误的手表时,"意外的令牌".
作为一种解决方法,我可以修改代码以抛出异常并重新部署.但我想知道是否有办法在调试器中执行此操作而不修改源代码.