这之前必须要求,但我没有搜索过.我正在寻找一种方法来捕获所有客户端混淆的错误/堆栈跟踪并将它们发送到服务器进行调试.我确实使用window.onerror看到了关于javascript的一些内容,但我正在寻找一种方法来使用GWT,然后显示一个非混淆的堆栈跟踪.
有人知道怎么做吗?谢谢!
编辑: 经过几个小时的工作后,我已经通过以下方式将日志从GWT转移到服务器:
GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {
@Override
public void onUncaughtException(Throwable e) {
log.log(Level.SEVERE, e.getMessage(), e);
}
});
Run Code Online (Sandbox Code Playgroud)
那就是现在使用gwt附带的默认Logger.这是相关的.gwt.xml:
<inherits name="com.google.gwt.logging.Logging" />
<set-property name="gwt.logging.logLevel" value="WARNING" />
<set-property name="gwt.logging.enabled" value="TRUE" />
<set-property name="gwt.logging.simpleRemoteHandler" value="ENABLED" />
<set-property name="gwt.logging.consoleHandler" value="DISABLED" />
<set-property name="gwt.logging.developmentModeHandler" value="ENABLED" />
<set-property name="gwt.logging.systemHandler" value="ENABLED" />
<set-property name="gwt.logging.popupHandler" value="DISABLED" />
<set-property name="gwt.logging.firebugHandler" value="DISABLED" />
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true"/>
<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true"/>
Run Code Online (Sandbox Code Playgroud)
我在网上到处搜索,我甚至发现这是来自gwt-log的东西,它似乎是在它被实现到GWT SDK之前:http://code.google.com/p/gwt-log/wiki/GettingStarted #Override_the_default_URL_which_the_RemoteLogger_connects_to
我按照上面链接的说明,更新了包名称,没有更新.我现在用以下参数编译:-deploy war/WEB-INF/deploy /
这是我的web.xml的相关部分:
<!-- Servlets -->
<servlet>
<servlet-name>RemoteLoggerServlet</servlet-name>
<servlet-class>com.google.gwt.logging.server.RemoteLoggingServiceImpl</servlet-class>
<init-param>
<param-name>symbolMaps</param-name>
<param-value>WEB-INF/deploy/**MYAPPNAMEHERE**/symbolMaps/</param-value>
</init-param> …Run Code Online (Sandbox Code Playgroud) 所以我本周末花了很多时间在Mortar和Flow上,我想我终于完成了大部分工作.我发现它比我原先想象的要复杂一点,主要是因为我还没有完全理解Dagger的ObjectGraph Scoping,Mortar非常依赖它.我在Dagger的网站上已经阅读了尽可能多的内容,但是我发现这个主题的信息在与Dagger特别相关时缺乏.
所以我有几个问题:1.我看到他们对@ Singleton的范围的例子:
@Layout(R.layout.screen_friend)
public class FriendScreen implements Blueprint {
@Override public String getMortarScopeName() {
return getClass().getName();
}
@Override public Object getDaggerModule() {
return new Module();
}
@dagger.Module(
injects = FriendView.class
)
static class Module {
}
@Singleton
public static class Presenter extends ViewPresenter<TestView> {
@Inject
public Presenter() {
Log.d("FriendScreen", "Friend Presenter Created");
}
@Override protected void onLoad(Bundle savedInstanceState) {
super.onLoad(savedInstanceState);
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Presenter是否专门针对此模块,因为它是一个内部类?2.如何确保仅在此对象图中创建它的实例而不是全局应用程序对象图?2.如果演示者太大了,我想把它移到它自己的独立课程怎么办?我如何将其范围仅限于此模块?3.我注意到他们示例中的某些Module类是静态的,而其他类则不是.这对范围界定有什么影响吗?4.我在哪里可以阅读更多内容以更好地理解Dagger的对象图.我需要更好地理解includes,inject,addsTo以及如何在ObjectGraph创建中使用它们等:
@dagger.Module( //
includes = ActionBarModule.class,
injects = MainView.class,
addsTo = ApplicationModule.class, //
library …Run Code Online (Sandbox Code Playgroud) 从play的文档:
由于Play 2.0的工作方式,动作代码必须尽可能快(即非阻塞).那么如果我们还不能生成它,我们应该返回什么呢?回应是对结果的承诺!
所以我不应该直接在动作内部进行数据库调用.当我查看Plays JPA文档时,这让我感到困惑:
每个JPA调用都必须在事务中完成,因此,要为特定操作启用JPA,请使用@ play.db.jpa.Transactional对其进行注释.这将使用JPA Action组成您的操作方法,该操作为您管理事务
这让我有点困惑.如果我遵循文档,我不应该使用数据库调用阻止操作线程.但是,如果操作是创建和管理数据库事务的,那么我是不是通过将工作发送给actor或者以某种方式将工作卸载到另一个线程来丢失该事务?我的意思是,我是scala和play的新手,但我只是看不到事务如何跟随单独的线程.有没有人有解释,或者我应该这样做的方式?我很困惑.
我是XCode和Objective C/Swift的新手.我正在尝试制作一个不依赖于可可或任何东西的Swift库项目.所以它只是Swift文件.我应该创建什么类型的项目(我假设有多种方法可以执行此操作?我如何配置项目以便将其构建为.so文件?最后,如何将其构建为.so文件?那文件?
我正在使用Xcode6-beta.
我正在使用Gson解析Android上服务器的响应.每个响应都有一些无用的(对我而言)数据,这使我的Gson模型变得复杂.这是json返回的一般层次结构:
response: {
date: 1406253006807,
otherUselessData1: "This is some useless data",
otherUselessData2: "This is some useless data",
usefulJsonObject: { <---- This is really the object that I care about
}
}
Run Code Online (Sandbox Code Playgroud)
usefulJsonObject我所能做到的一切都高于或者处于同一水平.为每个请求返回无用的数据,并将实际响应嵌入到下面作为usefulJsonObject.这不是一个大问题,但它真的让我的gson模型对象变得混乱.
例如: 比方说,我有3个请求,我可以做:A,B和C.对于每个响应,我似乎需要至少制作3个自定义类.
public class ResponseA {
@SerializedName("response") ResponseObjectA responseObject;
public static class ResponseObjectA {
@SerializedName("usefulJsonObject") UsefulObjectA usefulObject;
}
public static class UsefulObjectA {
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些解决方案,但我没有找到任何优雅的东西,不会给我的过程增加额外的一步.我正在使用改造来做我的http请求,它真的很好,它只是将完全解析的gson对象返回给我.我想到了其他解决方案,比如让有用的对象只是一个JsonElement,然后在第一次回来之后进行第二次gson调用.再次,不理想.
我只是想知道我是否遗漏了什么.当然,我不是唯一一个遇到类似事情的人,所以我想我会问其他人如何处理这样的事情.
我有一些用 dart 编写的文件,我想将它们编译为 javascript 并包含在我的 Android 应用程序中运行的一些 html 文件中。
这些文件由一个 main 方法组成,然后有一个带有 3 个函数的 api 层,其他 javascript 代码将在运行时调用这些函数。非常重要的是,我尽可能少地包含 dart 的库(所以摇树是必须的),并且当摇树/缩小过程发生时,我需要确保 3 个 api 层函数不会被重命名 /优化了,因为它认为他们没有被调用?
我如何告诉 dart2js 保留某些函数的签名,而不是因为它认为它们没有被使用而将它们修剪掉?
是否有可能让Dagger为你注射单身人士?
事实上,我只找到了一种手动为单身人士提供依赖关系的方法:
@Provides
@Singleton
public Dispatcher providesDispatcher(Context context, PPreferences preferences,
FileNameCache fileNameCache) {
return new Dispatcher(context, preferences, fileNameCache);
}
Run Code Online (Sandbox Code Playgroud)
这是定义单身人士的唯一方法吗?我更喜欢做的是以下内容,以便Dagger自己注入依赖项,但这样做会给我一个错误.
@Provides
@Singleton
public Dispatcher providesDispatcher(Dispatcher dispacher) {
return dispacher;
}
Run Code Online (Sandbox Code Playgroud)
也许还有另一种方法来定义单身,这将允许我注入其他单身人士吗?
任何帮助表示赞赏.
编辑: 我刚刚意识到我正在使用另一个Singleton进行第二种方法,但是当我将实现映射到接口时,情况略有不同:
@Provides
@Singleton
public Tracker providesTracker(TrackerImpl tracker) {
return tracker;
}
Run Code Online (Sandbox Code Playgroud)
TrackerImpl也注入了上面提到的PPreferences的实例.
当我尝试使用第二个示例创建Dispatcher时,这是我得到的错误:
error: Unknown error java.lang.IllegalStateException thrown by javac in graph validation: Dependency cycle:
0. com.example.test.Dispatcher bound by @Singleton/ProviderMethodBinding[provideKey="com.example.test.Dispatcher", memberskey="null"]
0. com.example.test.Dispatcher
Run Code Online (Sandbox Code Playgroud) 如何使用 OkHttp 为我的 Android/Java 应用程序启用证书固定?
我目前被列为 Google Workspace 管理员,但由于某种原因,我似乎仍然无法执行某些操作,例如创建文件夹来组织项目。我们使用 terraform 生成一些项目,生成的项目仅授予对权限中直接指定的项目的访问权限。
我看到网站上引用的继承权限/访问权限。我们如何设置它,以便我和其他一些人始终继承访问权限以查看为组织创建的每个项目?
google-cloud-platform terraform google-iam google-cloud-iam terraform-provider-gcp
我们使用 Docker 将服务器发布到不同的环境,但我们也使用 Docker 在多阶段 docker 构建中构建服务器。当我们刚刚构建 PR 时,让 docker 创建镜像并用非推送的 docker 镜像弄乱我们的构建服务器是没有意义的。
有没有办法让 Docker 构建镜像,而不将其保存到磁盘,或者之后立即将其删除?