Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

7
从Spring Boot Rest服务下载文件
我正在尝试从Spring Boot Rest服务下载文件。 @RequestMapping(path="/downloadFile",method=RequestMethod.GET) @Consumes(MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<InputStreamReader> downloadDocument( String acquistionId, String fileType, Integer expressVfId) throws IOException { File file2Upload = new File("C:\\Users\\admin\\Desktop\\bkp\\1.rtf"); HttpHeaders headers = new HttpHeaders(); headers.add("Cache-Control", "no-cache, no-store, must-revalidate"); headers.add("Pragma", "no-cache"); headers.add("Expires", "0"); InputStreamReader i = new InputStreamReader(new FileInputStream(file2Upload)); System.out.println("The length of the file is : "+file2Upload.length()); return …
78 java  spring  rest 

1
SSL证书服务器名称如何解析/是否可以使用keytool添加备用名称?
为了清楚起见,可以将这些问题表述为单独的问题,但是它们都与同一问题相关。 SSL证书服务器名称如何解析? 为什么浏览器似乎使用证书的CN字段,但是Java的机制似乎仅查看“主题备用名称”? 是否可以使用keytool将替代名称添加到SSL证书?如果不是,使用openSSL代替是一个不错的选择吗? 只是一点点背景:我需要获得一个主服务器,以便使用HTTPS与多个服务器进行通信。显然,我们不想为每台服务器购买SSL证书(可能有很多),所以我想使用自签名证书(我一直在使用keytool生成它们)。在操作系统中将证书添加为受信任的证书后,浏览器(IE和Chrome)欣然接受该连接为受信任的证书。但是,即使将证书添加到Java的cacerts中,Java仍然不会将连接接受为受信任的,并引发以下异常: 由以下原因引起:java.security.cert.CertificateException:sun.security.util.HostnameChecker.match(HostnameChecker.java:75)上的sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:142)上没有使用者替代名称。在com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:250)处com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(X509T rustManagerImpl.java:264) sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien tHandshaker.java:1185)...还有14个 我发现我可以使Java信任实现我自己的HostNameVerifier的证书,该证书是我从此处复制的:com.sun.jbi.internal.security.https.DefaultHostnameVerifier只是为了进行测试(顺便说一下,主机名作为参数传递给了HostnameVerifier是正确的,因此我认为它应该已经被接受)。 我一直使用证书字段CN作为主机名(通常是IP地址)。 有人可以告诉我我做错了什么,并指出正确的方向吗?
78 java  security  ssl 

6
休眠与iBATIS的比较
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 3年前关闭。 改善这个问题 为了重新设计新产品,我们正在从Java中选择最佳框架。由于考虑使用模型的数据库不可知方法,因此我们正在研究iBATIS或Hibernate在Struts + Spring之间的选项。请提出建议,因为两者都可以提供持久性。

5
以字节为单位设置特定位
我正在尝试在Java字节变量中设置位。它确实提供了类似的适当方法.setBit(i)。有人知道我该怎么实现吗? 我可以逐位遍历给定的字节: if( (my_byte & (1 << i)) == 0 ){ } 但是我不能将此位置设置为1或0,可以吗?

7
“最后100个字节”的采访场景
前几天,我在一次采访中遇到了这个问题,想知道一些可能的最佳答案(我回答得不太好哈哈): 场景:有一个网页正在监视通过某个网络发送的字节。每次发送一个字节时,都会调用recordByte()函数来传递该字节,每天可能发生数十万次。此页面上有一个按钮,当按下该按钮时,将在屏幕上显示传递给recordByte()的最后100个字节(通过调用下面的print方法来执行此操作)。 以下是我被要求填写的代码: public class networkTraffic { public void recordByte(Byte b){ } public String print() { } } 存储100个字节的最佳方法是什么?一个列表?好奇如何最好地做到这一点。
78 java  algorithm 


4
无法在ProgressDialog的AsyncTask内未调用Looper.prepare()的线程内创建处理程序
我不明白为什么会收到此错误。我正在使用AsyncTask在后台运行一些进程。 我有: protected void onPreExecute() { connectionProgressDialog = new ProgressDialog(SetPreference.this); connectionProgressDialog.setCancelable(true); connectionProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); connectionProgressDialog.setMessage("Connecting to site..."); connectionProgressDialog.show(); downloadSpinnerProgressDialog = new ProgressDialog(SetPreference.this); downloadSpinnerProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); downloadSpinnerProgressDialog.setMessage("Downloading wallpaper..."); } 当我doInBackground()根据情况进入时: [...] connectionProgressDialog.dismiss(); downloadSpinnerProgressDialog.show(); [...] 每当我尝试时downloadSpinnerProgressDialog.show(),都会收到错误消息。 有想法吗?

30
持续集成服务器
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我的公司正在考虑更改连续集成服务器(我不会说我们现在拥有哪台服务器,因此无论如何我都不会歪曲您的回答:))我想知道是否有人提出建议?最佳的用户体验,维护难度等... 我们的代码全部使用Java,并且我们将ANT用作构建工具。

13
使用StringBuilder替换所有出现的String吗?
我是否缺少某些东西,或者StringBuilder是否缺少与普通String类相同的“用字符串B替换所有出现的字符串A”功能?StringBuilder的替换功能并不完全相同。有没有什么方法可以更有效地使用普通的String类生成多个String?
78 java 

8
将UUID存储为base64字符串
我一直在尝试使用UUID作为数据库密钥。我想占用尽可能少的字节,同时仍使UUID表示易于阅读。 我认为我已经使用base64将其压缩为22个字节,并删除了一些尾随的“ ==”,这对于我来说似乎是不需要存储的。这种方法有什么缺陷吗? 基本上,我的测试代码进行了大量转换,以将UUID转换为22字节的字符串,然后将其转换回UUID。 import java.io.IOException; import java.util.UUID; public class UUIDTest { public static void main(String[] args){ UUID uuid = UUID.randomUUID(); System.out.println("UUID String: " + uuid.toString()); System.out.println("Number of Bytes: " + uuid.toString().getBytes().length); System.out.println(); byte[] uuidArr = asByteArray(uuid); System.out.print("UUID Byte Array: "); for(byte b: uuidArr){ System.out.print(b +" "); } System.out.println(); System.out.println("Number …
78 java  sql  bytearray  base64  uuid 

9
通过Gradle测试时记录
在测试时,Gradle似乎将stdout / stderr重定向到project_dir/build/reports/tests/index.html。有没有办法避免这种重定向,而是将内容打印到控制台上? 附加信息: 这是一个Scala 2.9.1项目。 我正在使用slf4s进行日志记录。
78 java  scala  logging  gradle 


6
在测试过程中注入@Autowired私有字段
我有一个组件安装程序,它实际上是一个应用程序的启动器。它的配置如下: @Component public class MyLauncher { @Autowired MyService myService; //other methods } MyService带有@ServiceSpring注释,并自动连接到我的启动器类中,没有任何问题。 我想为MyLauncher编写一些jUnit测试用例,为此,我启动了一个这样的类: public class MyLauncherTest private MyLauncher myLauncher = new MyLauncher(); @Test public void someTest() { } } 我可以为MyService创建一个Mock对象,然后将其注入测试类中的myLauncher吗?由于Spring正在处理自动装配,因此我目前在myLauncher中没有吸气剂或吸气剂。如果可能的话,我不想添加getter和setter。我可以告诉测试用例使用@Beforeinit方法将模拟对象注入自动装配的变量中吗? 如果我要彻底解决这个问题,请随意说。我还是这个新手。我的主要目标是只具有一些Java代码或注释,即可将模拟对象放入该@Autowired变量中,而无需编写setter方法或使用applicationContext-test.xml文件。我宁愿在.java文件中维护测试用例的所有内容,而不必只为测试维护单独的应用程序内容。 我希望将Mockito用于模拟对象。过去,我是通过使用org.mockito.Mockito和创建对象来完成此操作的Mockito.mock(MyClass.class)。


12
如何删除字符串的第一个和最后一个字符?
我已经在SOAP消息中工作过,以从Web服务获取LoginToken,并将LoginToken存储在String中,并使用 System.out.println(LoginToken);打印。此打印[wdsd34svdf],但我只想wdsd34svdf,如何删除方括号。请任何人帮助我。 谢谢 例: String LoginToken=getName().toString(); System.out.println("LoginToken" + LoginToken); 输出:[wdsd34svdf]我想要wdsd34svdf
78 java  string 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.