Tag: java

错误:(23,17)无法parsing:junit:junit:4.12

为什么每次我在Android Studio中创build一个新项目时,总是会出现: 错误:(23,17)无法parsing:junit:junit:4.12? 当我在依赖关系中删除testCompile 'junit:junit:4.12' ,这已经不是问题了。 的build.gradle apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.okedroid.myapplication" minSdkVersion 17 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.0.1' }

从给定的url获取域名

给定一个URL,我想提取域名(它不应该包括“www”部分)。 url可以包含h​​ttp / https。 这是我写的Java代码。 虽然它似乎工作正常,有没有更好的方法或有一些边缘情况下,可能会失败。 public static String getDomainName(String url) throws MalformedURLException{ if(!url.startsWith("http") && !url.startsWith("https")){ url = "http://" + url; } URL netUrl = new URL(url); String host = netUrl.getHost(); if(host.startsWith("www")){ host = host.substring("www".length()+1); } return host; } input: http : //google.com/blah 输出:google.com

为HttpURLConnection添加标题

我试图添加标头为我的请求使用HttpUrlConnection但方法setRequestProperty()似乎不工作。 服务器端不会收到我的头的任何请求。 HttpURLConnection hc; try { String authorization = ""; URL address = new URL(url); hc = (HttpURLConnection) address.openConnection(); hc.setDoOutput(true); hc.setDoInput(true); hc.setUseCaches(false); if (username != null && password != null) { authorization = username + ":" + password; } if (authorization != null) { byte[] encodedBytes; encodedBytes = Base64.encode(authorization.getBytes(), 0); authorization = "Basic " + […]

REST API – DTO或不?

我目前正在为一个项目创build一个REST-API,并且正在阅读关于最佳实践的文章。 许多人似乎反对DTOs,只是公开领域模型,而其他人似乎认为DTO(或用户模型或任何你想称之为)是不好的做法。 我个人认为这篇文章很有意义。 但是,我也了解DTO的所有额外映射代码的缺陷,可能与它们的DTO对等体完全相同的域模型等等。 我们的API大部分都是为了让其他客户端可以使用数据而创build的,但是如果我们做得正确的话,我们也可以在我们自己的Web GUI上使用它。 问题是我们可能不想将所有域数据公开给其他客户端用户。 大部分数据只会在我们自己的Web应用程序中有意义。 另外,我们可能不希望在所有场景中公开有关对象的所有数据,特别是与其他对象的关系等等。 例如,如果我们公开一个特定对象的列表,我们不一定要公开整个对象的层次; 使对象的孩子不会暴露,但可以通过链接发现(仇恨)。 我应该如何解决这个问题呢? 我正考虑在我们的领域模型上使用Jackson mixins来控制在不同场景下会暴露的数据。 还是应该一直使用DTO – 即使有缺点和争议?

Android Studio Google JAR文件导致GC开销限制超出错误

我在OS X上使用Android Studio。我收到此错误消息: 失败:生成失败,出现exception。 出了什么问题:执行任务':app:preDexDebug'失败。 com.android.ide.common.internal.LoggedErrorException:无法运行命令:/ Applications / Android Studio.app/sdk/build-tools/android-4.4W/dx –dex –output / Users / alex / AndroidStudioProjects / SilentSMS / app / build / intermediates / pre-dexed / debug / android-4.3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar /Users/alex/AndroidStudioProjects/SilentSMS/app/libs/android-4.3_r2.1.jar 错误代码:3输出: UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: GC overhead limit exceeded at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:665) at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:288) at com.android.dx.cf.code.Simulator$SimVisitor.visitLocal(Simulator.java:612) at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:412) at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94) at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:782) at […]

EL通过Integer键访问映射值

我有一个由Integer键入的Map。 使用EL,我怎样才能通过它的键访问一个值? Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); 我认为这将工作,但它不(在地图已经在请求的属性): <c:out value="${map[1]}"/> 跟进:我跟踪了这​​个问题。 显然${name[1]}会将数字作为Long进行地图查找。 当我将HashMap更改为TreeMap并收到错误时,我想到了这一点: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long 如果我改变我的地图是: Map<Long, String> map = new HashMap<Long, String>(); map.put(1L, "One"); 那么${name[1]}返回“One”。 那是什么? 为什么<c:out>把一个数字视为一个长整数。 这似乎违反我的想法(因为int比long更常用)。 所以我的新问题是,是否有一个通过Integer值访问映射的EL符号?

无法find要求的目标的有效证书path – 即使在导入证书后也是如此

可能重复: PKIXpathbuild立失败:无法find有效的证书path到请求的目标 我有一个Java客户端尝试访问具有自签名证书的服务器。 当我尝试发布到服务器时,出现以下错误: 无法find要求的目标的有效证书path 在对这个问题做了一些研究后,我做了以下工作。 将我的服务器域名保存为root.cer文件。 在我的Glassfish服务器的JRE中,我运行了这个:keytool -import -alias示例-keystore cacerts -file root.cer。 要检查证书是成功添加到我的cacert,我做到了这一点:keytool -list -v -keystore cacerts我可以看到证书是存在的。 然后,我重新启动了Glassfish并退休了。 我仍然得到相同的错误。 我有一种感觉,这是因为我的Glassfish实际上并没有阅读我已经修改的cacert文件,但也许还有一些。 有没有人有这个问题,可以推动我在正确的方向吗?

什么是推荐的方式从Tomcat的servlet产生线程

可能是重复! 我正在使用Tomcat作为我的服务器,并且想知道在servlet中产生具有确定性结果的线程的最佳方法。 我正在从一个servlet动作运行一些长时间运行的更新,并希望完成请求并在后台执行更新。 而不是像RabbitMQ那样添加一个消息中间件,我想我可以生成一个可以在后台运行的线程,并在自己的时间内完成。 我在其他SO线程中读取服务器终止服务器产生的线程,以便它能够很好地pipe理资源。 有没有推荐的方式来产生线程,使用Tomcat的后台作业。 我也使用Spring MVC的应用程序。

用活动组内的另一个片段replace一个片段

我有一个组活动内的片段,我想用另一个片段replace它: FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction(); SectionDescriptionFragment bdf = new SectionDescriptionFragment(); ft.replace(R.id.book_description_fragment, bdf); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack(null); ft.commit(); 当它作为一个单独的项目而没有使用活动组,每个东西都可以正常工作时,它可以很好的工作,因为控件进入getview(),但是没有视图可见,甚至没有任何exception出现,我希望书的细节片段被部分细节片段取代。 book细节片段的xml具有id book_description_fragment和xml,用于片段描述片段具有id section_description_fragment。 上面的代码是在一个项目的onClick方法中,我想当用户在水平滚动视图中的一个项目上点击,然后片段改变。

使用正则expression式在Java中提取值

我有几个string粗略的forms: [some text] [some number] [some more text] 我想使用Java Regex类在[某些数字]中提取文本。 我大概知道我想使用什么正则expression式(尽pipe欢迎所有的build议)。 我真正感兴趣的是调用正则expression式string的Java调用,并在源数据上使用它来产生[some number]的值。 编辑:我应该补充说,我只对一个[一些数字](基本上,第一个实例)感兴趣。 源string很短,我不会寻找[某些数字]的多次出现。