Google Play警告和“X509TrustManager的不安全实施”

我们收到了有关“您正在使用X509TrustManagfer的不安全实施”的邮件。 要解决此问题,我们已应用http://transoceanic.blogspot.in/2011/11/android-import-ssl-certificate-and-use.html中的解决方案 这里我们生成了新的BKS密钥库并传递了这个密钥库SSLSocketFactory。 该工厂负责validation服务器证书。 我们已经存在Keystore但它不是.BKS格式。 这就是为什么我们为特殊的HTTPS调用创建了新的。 请查看我的以下代码: DefaultHttpClient sslClient = new MyHttpClient(StartupActivity.activity); public class MyHttpClient extends DefaultHttpClient { final Context context; public MyHttpClient(Context context) { this.context = context; } @Override protected ClientConnectionManager createClientConnectionManager() { SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme(“http”, PlainSocketFactory .getSocketFactory(), 80)); // Register for port 443 our SSLSocketFactory with our keystore // […]

Java Scanner(文件)行为不当,但Scanner(FIleInputStream)始终使用相同的文件

我对Scanner有一种奇怪的行为。 当我使用Scanner(FileInputStream)构造函数时,它将与我正在使用的一组特定文件一起使用,但它不会与Scanner(File)构造函数一起使用。 案例1: Scanner(File) Scanner s = new Scanner(new File(“file”)); while(s.hasNextLine()) { System.out.println(s.nextLine()); } 结果:没有输出 案例2: Scanner(FileInputStream) Scanner s = new Scanner(new FileInputStream(new File(“file”))); while(s.hasNextLine()) { System.out.println(s.nextLine()); } 结果:文件内容输出到控制台。 输入文件是包含单个类的java文件。 我以编程方式(在Java中)仔细检查: 该文件存在, 是可读的, 并且具有非零文件大小。 在这种情况下, Scanner(File)通常适用于我,我不知道为什么现在没有。

Windows上的Java JNI和依赖库

长话短说:我有一个可执行jar,它调用依赖于lib.dll 。 而且我得到了那些令人恐惧的UnsatisfiedLinkError 。 这个答案非常接近,但根据我的经验,它无法解决问题。 即使在java.library.path指定了dll驻留的文件夹,它也不起作用。 我也必须更改Windows PATH环境变量。 实际上,Windows上的默认java.library.path似乎是PATH 。 有没有“漂亮”的方法来解决这个问题? 我想为Windows构建一个安装程序,我想知道如何处理这个问题,以便最终用户不必做任何手动工作。 编辑: 我实现的内容如下:应用程序附带一个名为“native_libs”的文件夹,该文件夹具有适用于所有受支持体系结构的动态库。 结构如下: / +- native_libs/ +- windows/ | +- x86/ | | +- … | +- x64/ | +- … | +- linux/ | +- x86/ | | +- … | +- x64/ | +- … | +- libs/ +- … 在运行时,在应用程序初始化时,会检测到正确的JRE体系结构和系统OS,并将正确的库文件复制到libs […]

如何使用Hibernate Validator动态解析消息参数?

我正在使用Hibernate Validator,并希望在错误消息中解析类别的名称。 考虑这个简单的场景: public class Category { private String name; } public class Product { @HazardousCategoryConstraint(message = “{haz.cat.error}”) private Category category; private String name; } public class InventoryReport { @Valid private List products; } ValidationMessages.properties haz.cat.error={name} is a product in the hazardous category list. 假设我有一个HazardousCategoryConstraint的工作实现。 validation器根据受限制的名称列表检查每个类别的名称。 当我调用validate(InventoryReport)时,我得到了我期望的错误数,除非它们是相同的字符串。 我想看到分类的名称已解析为每条消息。 有人能指出我如何动态解决参数,或告诉我如何?

如何在表单,validation和ddl中重用字段长度?

我正在开发一个包含大量输入表单的Spring应用程序。 我想在UI表单,validation和JPA注释中重用字段长度。 有没有一种优雅的方法来解决这个问题。 我现在的解决方案是,使用常量来声明长度: public class Person { public static final int FIRSTNAME_LENGTH = 25; @Column(length=FIRSTNAME_LENGTH) private String firstName; … } 然后在Validator和Jsp中重用常量 … <form:input path="firstName" maxlength="”/> … 这很啰嗦。 这个问题还有更优雅的解决方案吗?

Android:如何处理嵌入在使用JSON检索的字符串中的html 标记

我有一个显示文章的新闻网站,我已经在android studio中编写了一个java代码,以便从像 JSON这样的URL获取文章的内容,到目前为止它们都很好。 但是在文章中可能有描述中的照片,现在我想从描述节点获取html 标签,并在我的Android应用程序中正确显示图像,它们出现在描述中。 这是我的测试代码,如果这有助于: import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.ProgressDialog; import android.content.DialogInterface; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.text.Html; import android.util.Log; import android.widget.ImageView; import android.widget.TextView; import java.io.InputStream; public […]

如何从匿名内部类调用特定的父构造函数?

好的,所以我知道匿名内部类要么隐式扩展父类,要么实现接口,因此需要调用超类的构造函数。 但是,我不确定如何为匿名类创建构造函数(如果这是可能的)并且没有定义构造函数我不知道如何调用super()! 这是我的练习代码: public class AnonymousConstructor { public static void main(String[] args) { //I’m not sure how to explicitly call one of the arg super constructors MyBob my = new MyBob() { //I would like to do something like this super(“String”); or //super(“String”, “String”); }; } } class MyBob extends Thread { MyBob() { System.out.println(“No […]

在Java8中引用具有不同参数的方法

我想知道所有这些方法引用和function接口如何在较低级别上工作。 最简单的例子是我们有一些List List list = new ArrayList(); list.add(“b”); list.add(“a”); list.add(“c”): 现在我们想用Collections类对它进行排序,所以我们可以调用: Collections.sort(list, String::compareToIgnoreCase); 但是,如果我们定义自定义比较器,它可能是这样的: Comparator customComp = new MyCustomOrderComparator(); Collections.sort(list, customComp::compare); 问题是Collections.sort有两个参数:List和Comparator。 由于Comparator是function接口,因此可以使用具有相同签名(参数和返回类型)的lambda表达式或方法引用替换它。 那么它如何工作我们可以传递也引用compareTo只接受一个参数并且这些方法的签名不匹配? 如何在Java8中翻译方法引用?

部分模拟很糟糕,为什么呢?

脚本 我有一个类称为Model ,它表示不同类型的许多其他对象的复杂的复合对象。 您可以将其视为具有Door[] , Tire[] , Engine , Driver等的Car 。而这些对象又具有子对象,例如Engine具有SparkPlug , Clutch , Generator等。 我有一个Metrics类,它可以计算一些或多或少复杂的关于Model指标,实质上它看起来像这样: public class Metrics{ private final Model model; public Metrics(Model aModel){model = aModel;} public double calculateSimpleMetric1(){…} public double calculateSimpleMetric2(){…} public double calculateSimpleMetricN(){…} public double calculateComplexMetric(){ /* Function that uses calls to multiple calculateSimpleMetricX to calculate a more complex metric. */ […]

Tomcat未能部署.war

我正在尝试按照本教程创建一个简单的REST Web服务,但是我会在tomcat上部署它并抛出exception: FAIL – Application at context path /restful could not be started FAIL – Encountered exception org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/restful]] 我已经四处寻找解决方案并找到了这个问题而且这个问题他们让我觉得这是一个servlet映射问题但是我不确定如何修复它! 这是我的日志文件: 18/12/2012 9:57:16 AM org.apache.catalina.startup.HostConfig deployWAR SEVERE: Error deploying web application archive /opt/tomcat7/webapps/restful.war java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/restful]] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) at […]