小编Dev*_*Ltd的帖子

如何让Google Guice与JaxRS合作(泽西岛)

我有一个基本的JAXRS服务,我可以轻松地公开,但一次我希望使用依赖注入API,我怀疑Google Guice将是最好的之一.考虑到这一点,我试图整合它,但文档有点沉重,我不得不四处寻找尝试找到合适的组合

  • 在web.xml
  • Context Listener(我应该使用ServletContainer还是GuiceContainer)
  • 服务
  • 是用@Singleton或@Request注释服务还是什么都没有(我应该用@Singleton注释 - 文档说我应该但是然后说默认是请求范围)
  • 是否使用@InjectParam注释构造函数参数

但是目前我从Google Guice那里得到错误,他们会根据我是否使用@InjectParam注释而改变.

如果我用@InjectParam注释,那么我得到

       Mar 29, 2013 9:52:04 PM com.sun.jersey.spi.inject.Errors processErrorMessages
   SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
   SEVERE: The class com.hillingar.server.dao.interfaces.UserDao is an interface and cannot be instantiated.
   SEVERE: Missing dependency for constructor public com.hillingar.server.SessionUtility(com.hillingar.server.dao.interfaces.UserDao) at parameter index 0
Run Code Online (Sandbox Code Playgroud)

如果我没有注释,那么我得到

    Mar 29, 2013 9:54:59 PM com.sun.jersey.spi.inject.Errors processErrorMessages
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
  SEVERE: Missing …
Run Code Online (Sandbox Code Playgroud)

java jax-rs jersey guice guice-servlet

8
推荐指数
1
解决办法
7799
查看次数

如何使Backbones toJSON功能包括子模型和集合?

我有一些模型不仅包含基本数据属性,但它们可能有一个或两个属性来保存另一个模型对象.

这没关系,但现在我想打电话

myRootModel.toJSON()

而且我注意到它并没有在我试图调用toJSON()的模型中的其他模型上调用.toJSON.

是否有办法覆盖骨干模型.toJSON以递归方式遍历所有字段,无论它们是基本属性,子模型还是集合?如果没有,我可以在每个模型/集合中覆盖toJSON吗?

我知道骨干关系,但我不想走这条路 - 我没有使用fetch/save,而是我们的API返回我在模型解析函数中调整的响应,只需调用新的MyRootModel(数据, {解析:真}).

backbone.js

8
推荐指数
2
解决办法
6868
查看次数

Xamarin.InAppBilling(2.2.0)调用Android BuyProduct()但有时不调用回调 - 如何诊断/修复根本原因?

在过去的几周里,我们在Android上遇到了许多失败的应用程序内购买失败(iOS一直很好).

我们使用Xamarin.InAppBilling组件(版本2.2.0)已经绝对好几个月,但最近我们可以看到我们正在调用行(A)但是通常的IAP回调没有被调用,这意味着......

  • Google未收到购买请求 - 我们可以对此进行排除,他们会收取费用.

  • 谷歌没有回复 - 我们最可能的情况

  • Xamarin.InAppBilling中的一个错误 - 不太可能,因为它一直在工作.

  • 我们没有正确注册回调 - 不太可能,因为我们已经记录了每个回调的第一行...

        _serviceConnection.BillingHandler.OnUserCanceled += BillingHandler_OnProductCanceled;
        _serviceConnection.BillingHandler.OnProductPurchased += BillingHandler_OnProductPurchased;
        _serviceConnection.BillingHandler.OnGetProductsError += BillingHandler_OnGetProductsError;
        _serviceConnection.BillingHandler.OnPurchaseConsumed += BillingHandler_OnPurchaseConsumed;
        _serviceConnection.BillingHandler.OnPurchaseConsumedError += BillingHandler_OnPurchaseConsumedError;
        _serviceConnection.BillingHandler.OnProductPurchasedError += BillingHandler_OnProductPurchasedError;
        _serviceConnection.BillingHandler.OnPurchaseFailedValidation += BillingHandler_OnPurchaseFailedValidation;
        _serviceConnection.BillingHandler.OnInvalidOwnedItemsBundleReturned += BillingHandler_OnInvalidOwnedItemsBundleReturned;
    
    Run Code Online (Sandbox Code Playgroud)

这是调用购买代码的摘录......

        Device.BeginInvokeOnMainThread (async () => {

            var products = await _serviceConnection.BillingHandler.QueryInventoryAsync (new List<String> { consumableSku }, ItemType.Product);

            if (products != null && products.Count == 1) {

                var product = products [0];

                logger.Log ("FeatureService purchaseConsumableFromGooglePlay product:"+product.ToString()+ " payload:" + this.developerPayload);

                // (A)
                _serviceConnection.BillingHandler.BuyProduct …
Run Code Online (Sandbox Code Playgroud)

android in-app-purchase xamarin.android xamarin google-play-services

8
推荐指数
1
解决办法
322
查看次数

使用 Java Apache HttpClient 4.5.12 时如何解决“连接重置”

我们一直在与我们的数据提供者之一讨论来自我们的 HTTP 请求的某些请求由于“连接重置”异常而间歇性失败的问题,但我们也看到了“目标服务器无法响应”异常。

许多 Stack Overflow 帖子都指出了一些潜在的解决方案,即

我希望这个问题能帮助我找到根本原因。

语境

它是托管在 AWS Elastic Beanstalk 中的 Java Web 应用程序,具有基于负载的 2..4 个服务器。Java WAR 文件使用 HttpClient 4.5.12 进行通信。在过去的几个月里,我们看到

45 x 连接重置(只有 3 个超时超过 30 秒,其他在 20 毫秒内失败)

考虑到这一点,我们对该供应商执行了 10,000 个请求,因此错误率并不高,但非常不方便,因为我们的客户为随后失败的服务付费。

目前,我们正试图专注于消除“连接重置”场景,并建议我们尝试以下方法:

1)重启我们的应用服务器(一个绝望的以防万一的场景)

2) 更改 DNS 服务器以使用 Google 8.8.8.8 & 8.8.4.4(因此我们的请求采用不同的路径)

3) 为每个服务器分配一个静态 IP(这样它们就可以使我们无需通过他们的 CloudFront 分配即可进行通信)

我们将通过这些建议,但同时我想了解我们的 HttpClient 实现可能不太正确的地方。

典型用法

用户请求 --> 我们的服务器(JAX-RS 请求) --> HttpClient 到第 3 方 --> 收到响应,例如 JSON/XML --> …

java httpclient apache-commons-httpclient apache-httpclient-4.x

6
推荐指数
0
解决办法
2952
查看次数

如何让 NetBeans 12.0 在 Mac 上启动(MAC OS 11.0 beta / Big Sur)

在 Mac (Big Sur) 上,当我单击文档中的 Netbeans 12 图标时,它会短暂反弹,然后无法启动 Netbeans。

netbeans netbeans-12

6
推荐指数
2
解决办法
4384
查看次数

Apple IAP 收据验证返回代码 21002

我试图提交到沙箱(和实时)verifyReceipt 端点,但我总是从 Apple 收到以下 JSON 响应......

{"status":21002, "exception":"java.lang.IllegalArgumentException"}
Run Code Online (Sandbox Code Playgroud)

这是邮递员截图

邮递员测试

我正在发布数据并设置标题(应用程序/json)

{"receipt-data":"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"}
Run Code Online (Sandbox Code Playgroud)

这是通过 TestFlight 内部测试部署从在 iOS 设备上运行的应用程序执行的。

我有点不确定 Base64 字符串是否格式不正确或其他东西 - 它确实有一些空格,但我现在删除了那些(因为我看到报告说它有帮助)。

这是我在移动应用程序中为捕获 base 64 编码所做的工作,请注意这是 Xamarin 代码(C#),但它非常接近地映射到您在 Objective-c / swift 中所做的......

String purchaseToken = null;
NSUrl receiptUrl = NSBundle.MainBundle.AppStoreReceiptUrl;
NSData receipt = null;

if (receiptUrl != null) {
    receipt = NSData.FromUrl (receiptUrl);
}

if (receipt == null) {
    // No local receipt -- handle the error
    // https://forums.xamarin.com/discussion/25304/how-do-i-exit-with-reason
    Environment.Exit (173);
} else {
    // http://stackoverflow.com/questions/37505020/example-of-parsing-a-receipt-for-an-in-app-purchase-using-ios-xamarin
    NSDictionary requestContents = NSDictionary.FromObjectAndKey ((NSString)receipt.GetBase64EncodedString …
Run Code Online (Sandbox Code Playgroud)

httpclient in-app-purchase xamarin.ios ios xamarin

5
推荐指数
2
解决办法
6939
查看次数

如何通过Xcode Designer添加MPVolumeView?

我最初动态地将MPVolumeView添加到页面中......

#import "MediaPlayer/MPVolumeView.h"
.
.
-(IBAction) handleVolumeButtonClicked:(id) sender {
    if (volumeView == nil) {
        volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(25, 378, 270, 30)];
        [self.view addSubview:volumeView];
        [volumeView release];
    } else {
        [volumeView removeFromSuperview];
        volumeView = nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,我开始收到动态添加卷组件时应用程序崩溃的报告.

为了解决这个问题,我决定尝试通过XCode设计器将组件添加到视图中,但后来我意识到我不知道如何做到这一点!

我先将"对象"从模板拖到对象调色板中,但后来发现我无法将其添加到视图中.所以我废弃了这个想法,然后将'View'对象直接拖到.xib视图上.

添加组件后,我尝试将"自定义类"更改为"MPVolumeView",但视图只渲染了一个空矩形.在模拟器中运行代码无法呈现任何内容.

有没有人知道我缺少哪些步骤将类添加到调色板中不存在的视图中?

cocoa-touch objective-c mpvolumeview

4
推荐指数
2
解决办法
1万
查看次数

使用Elastic Beanstalk时如何处理AWS EC2实例报废

我收到了AWS发来的电子邮件

我们有关于您的帐户的重要新闻(AWS账户ID:XXXXX).EC2已检测到eu-west-1区域中托管Amazon EC2实例(实例ID:i-XXXX)的底层硬件的性能下降.由于这种降级,您的实例可能已无法访问.在2017-05-25 10:00 UTC之后,您的实例(具有EBS卷作为根设备)将被停止.

我实际上正在使用带有弹性IP地址的负载均衡器的Elastic Beanstalk,这是当前唯一运行的实例(手动关联).另外,我有一个反向DNS用于电子邮件目的.

电子邮件继续说下面......

您仍然可以访问该实例.我们建议您通过创建实例的AMI来替换实例,并从AMI启动新实例.有关详细信息,请参阅EC2用户指南中的Amazon Machine Images(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html).如果在停止EBS支持的实例时遇到困难,请参阅实例常见问题解答(http://aws.amazon.com/instance-help/#ebs-stuck-stopping).

那么如何让Elastic Beanstalk重新配置到新硬件?

一些选择似乎是......

重建环境

保存配置 - >终止 - >加载配置

克隆环境 - >手动更改DNS - >终止旧环境

'终止'环境 - >'恢复终止环境'?

我不确定哪种变体会恢复环境,特别是如果我没有丢失为电子邮件(SNS?)配置完成的主机名/反向DNS内容,那将是理想的.

如果我保留所有这些(我不关心EC2实例或数据 - 将数据保存在所有这些外部的MongoDb中)会很好...

  • EC2配置(即硬件盒大小,VM参数等)
  • 安全组
  • 负载均衡器
  • 与EC2关联的弹性IP(以后手动操作很容易)
  • 主机名(反向DNS所需的任何内容)

我们将不胜感激! - 令人遗憾的是,他们的电子邮件/文档只讨论了EC2而不是beanstalk配置.

reverse-dns amazon-ec2 amazon-web-services amazon-elastic-beanstalk

4
推荐指数
1
解决办法
1282
查看次数

无法部署到GAE - 应用程序不存在

使用Eclipse时,我在尝试使用JAX-RS和JAXB部署相当基本的Web应用程序时遇到错误.它在本地运行正常,但在远程服务器上尝试时,我得到如下所示的消息...

"部署到Google"遇到问题/此应用程序不存在

在此输入图像描述

下面显示了我的appengine-web.xml

在此输入图像描述

XML文件说明我在xml中使用与项目属性中指定的名称相同的名称...

在此输入图像描述

输出窗口显示......

------------ Deploying frontend ------------

Preparing to deploy:
    Created staging directory at: '/var/folders/n8/6by626014jbfc0dwmxnb0ly00000gn/T/appcfg2754901216637807129.tmp'
    Scanning for jsp files.
    Scanning files on local disk.
    Initiating update.
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=hillingarincident&version=0&
404 Not Found
This application does not exist (app_id=u'hillingarincident').


Debugging information may be found in /private/var/folders/n8/6by626014jbfc0dwmxnb0ly00000gn/T/appengine-deploy447984481661870877.log
Run Code Online (Sandbox Code Playgroud)

引用的调试日志显示......

Unable to update:
com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=hillingarincident&version=0&
404 Not Found
This application does not exist (app_id=u'hillingarincident').

        at com.google.appengine.tools.admin.AbstractServerConnection.send1(AbstractServerConnection.java:293)
        at com.google.appengine.tools.admin.AbstractServerConnection.send(AbstractServerConnection.java:253)
        at com.google.appengine.tools.admin.AbstractServerConnection.post(AbstractServerConnection.java:232)
        at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:644)
        at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:449)
        at …
Run Code Online (Sandbox Code Playgroud)

google-app-engine gae-eclipse-plugin

3
推荐指数
1
解决办法
4681
查看次数

Xamarin Forms AppCenter 因无法识别的选择器发送到类而崩溃

我最近更改了我的项目以使用 .NET core 2,我目前正在重新测试 WPF、Android 和 iOS。

不幸的是,我也一直在升级我的 Nugets 以使 UWP 项目正常工作,今天早上 Xcode 也更新到版本 12.0 (12A7209),然后是 Visual Studio for Mac,所以我还不太确定应该归咎于什么。

我确实遇到了 App Center 不想从 3.4.1 升级到 3.4.2 的问题,所以我求助于清除我的 Nuget 缓存并手动编辑项目解决方案,现在它们都指向 3.4.2(最新的截至 23 2020 年 9 月)。

以下错误似乎是根本原因,但我不明白我需要做什么来解决它?

NSInvalidArgumentException Reason: +[MSAnalytics sharedInstance]: unrecognized selector sent to class 0x1eb4f2678
Run Code Online (Sandbox Code Playgroud)

崩溃日志...

2020-09-23 13:16:16.816 MYAPP
.iOS[3555:1395741] +[MSAnalytics sharedInstance]: unrecognized selector sent to class 0x1eb4f2678
2020-09-23 13:16:19.770 MYAPP
.iOS[3555:1395741] [AppCenterCrashes] ERROR: +[MSWrapperLogger MSWrapperLog:tag:level:]/10 Unhandled Exception:
Foundation.MonoTouchException: Objective-C exception thrown.  Name: NSInvalidArgumentException Reason: +[MSAnalytics sharedInstance]: unrecognized …
Run Code Online (Sandbox Code Playgroud)

xamarin.ios xamarin xamarin.forms visual-studio-app-center ios14

3
推荐指数
1
解决办法
838
查看次数