小编dur*_*dur的帖子

如何设置JAX-WS客户端使用ISO-8859-1而不是UTF-8?

我想配置我的JAX-WS客户端以ISO-8859-1发送消息.目前使用UTF-8.

以下是客户端尝试执行的操作:

Map<String, Object> reqContext = ((BindingProvider) service).getRequestContext();
Map httpHeaders = new HashMap();
httpHeaders.put("Content-type",Collections.singletonList("text/xml;charset=ISO-8859-1"));
reqContext.put(MessageContext.HTTP_REQUEST_HEADERS, httpHeaders);
Run Code Online (Sandbox Code Playgroud)

但是此设置被忽略,tcpmon显示服务器收到以下内容:

POST /service/helloWorld?WSDL HTTP/1.1
Content-type: text/xml;charset="utf-8"
Soapaction: "helloWorld"
Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
User-Agent: Oracle JAX-WS 2.1.5
Host: 1.1.1.1:8001
Connection: keep-alive
Content-Length: 4135

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelopexmlns:S="http://schemas.xmlsoap.org/soap/envelope/">...  
Run Code Online (Sandbox Code Playgroud)

因此,设置被覆盖,并且在HTTP头和XML消息中都使用了UTF-8.该服务由WSDL定义,WSDL以UTF-8编码.

问:我应该重新定义要在ISO-8899-1中编码的服务WSDL,然后重新生成客户端吗?或者,是不是我没有正确设置HTTP标头?

java encoding web-services jax-ws http-headers

10
推荐指数
1
解决办法
9588
查看次数

这里输出不同的原因是什么?

int a = 2;
int b = a + a;

Class cache = Integer.class.getDeclaredClasses()[0]; 
Field myCache = cache.getDeclaredField("cache"); 
myCache.setAccessible(true);

Integer[] newCache = (Integer[]) myCache.get(cache); 
newCache[132] =  newCache[133];

System.out.printf("%d",b); // 5
System.out.println(b); // 4
Run Code Online (Sandbox Code Playgroud)

在这里,我改变的值cache[132]cache[133]现在,这意味着cache[132] == 5printf()方法它打印5罚款,但println()为什么它打印4应该是5就可以了什么是背后的原因?

java

10
推荐指数
1
解决办法
319
查看次数

Java中的FileWriter与FileOutputStream

我对有点糊涂FileWriterFileOutputStream.当我看到FileWriter的源代码时,只有4个构造函数,每个构造函数都在调用FileOutputStream构造函数.

public FileWriter(String fileName) throws IOException {
       super(new FileOutputStream(fileName));
}
public FileWriter(String fileName, boolean append) throws IOException {
        super(new FileOutputStream(fileName, append));
}
public FileWriter(File file) throws IOException {
        super(new FileOutputStream(file));
}
public FileWriter(File file, boolean append) throws IOException {
        super(new FileOutputStream(file, append));
}
public FileWriter(FileDescriptor fd) {
        super(new FileOutputStream(fd));
}
Run Code Online (Sandbox Code Playgroud)

它们之间的区别搜索后,我发现这里提到.

FileOutputStream用于写入原始字节流,例如图像数据.要编写字符流,请考虑使用FileWriter.

怎么FileWriter能有所作为?即使它仍然FileOutputStream没有任何改变地调用构造函数.

java

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

Springboot Security hasRole无法正常工作

我无法hasRole@PreAuthorize注释中使用方法.也request.isUserInRole(“ADMIN”)给出了false.我错过了什么?虽然.hasAuthority(“ADMIN”)工作正常.

我正在从数据库为用户分配权限.

spring-security spring-boot

10
推荐指数
1
解决办法
7197
查看次数

EL1008E:在'java.util.HashMap'类型的对象上找不到属性或字段'timestamp' - 可能不公开?

当我使用Spring Boot的全局异常处理程序时,我得到了:

org.springframework.expression.spel.SpelEvaluationException:EL1008E:在'java.util.HashMap'类型的对象上找不到属性或字段'timestamp' - 可能不公开?

这是我的代码,我在我的项目中导入了Spring Security和Thymeleaf.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="en">
    <meta charset="UTF-8" />
    <title>??????</title>
</head>
<body>
<h1> ???? </h1>
<div th:text="${url ?: '????URL'}"></div>
<div th:text="${exception == null ? '??????' : exception.message}"></div>
</body>
</html
Run Code Online (Sandbox Code Playgroud)
@GetMapping("/test")
public String test() throws Exception {
    throw new Exception("????");
}
Run Code Online (Sandbox Code Playgroud)
@ControllerAdvice
public class GlobalExceptionHandler {

    private static final String DEFAULT_ERROR_VIEW = "/error";
    private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class);

    @ExceptionHandler(value = Exception.class)
    public ModelAndView defaultErrorHandler(HttpServletRequest request, Exception e) {
        LOGGER.error("????", e);
        ModelAndView mav …
Run Code Online (Sandbox Code Playgroud)

java spring spring-el spring-boot

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

aws_instance - 更改卷大小

我正在尝试增加我的 ami 的根卷的大小ami-0d013c5896434b38a- 我正在使用 Terraform 来配置它。

只是为了澄清 - 我只有一个例子。我想确保如果我需要增加磁盘空间,我不必先破坏机器。弹性(EC2)是我相信它可行的理由。

有谁知道这是否可行?是的,我可以简单地进行terraform plan一次预演,但只需仔细检查即可。

amazon-ec2 amazon-web-services terraform

10
推荐指数
3
解决办法
2万
查看次数

结合两份Jasper报告

我有一个带有下拉列表的Web应用程序,用户可以从中选择报告类型.report1,report2,report3等

根据所选报告,在服务器上编译Jasper报告,并以PDF格式弹出.

在服务器端,我使用下面的代码以单独的方法实现每个报告,例如对于report1:

JRBeanCollectionDataSource report1DataSource = new JRBeanCollectionDataSource(resultSetBeanListReport1);

InputStream inputStreamReport1 = new FileInputStream(request.getSession().getServletContext ().getRealPath(jrxmlFilePath + "report1.jrxml"));

JasperDesign jasperDesignReport1 = JRXmlLoader.load(inputStreamReport1);

JasperReport jasperReportReport1 = JasperCompileManager.compileReport(jasperDesignReport1);

bytes = JasperRunManager.runReportToPdf(jasperReportReport1, titleMapReport1,   report1DataSource);
Run Code Online (Sandbox Code Playgroud)

同样,report2使用以下代码的单独方法:

JRBeanCollectionDataSource invstSummDataSource = new JRBeanCollectionDataSource(resultSetBeanListInvstOfSumm);

InputStream inputStreamInvstSumm = new FileInputStream(request.getSession().getServletContext().getRealPath(jrxmlFilePath + "investSummary.jrxml"));

JasperDesign jasperDesignInvstSumm = JRXmlLoader.load(inputStreamInvstSumm);

JasperReport jasperReportInvstSumm = JasperCompileManager.compileReport(jasperDesignInvstSumm);

bytes = JasperRunManager.runReportToPdf(jasperReportInvstSumm, titleMapInvstSumm, invstSummDataSource);
Run Code Online (Sandbox Code Playgroud)

现在我要求如果从下拉列表中选择report1,则生成的PDF应该在同一PDF中一个接一个地包含所有报告.

如何组合上面两行代码以最终生成单个PDF?

java pdf jasper-reports

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

可以自动扫描包来自动创建SessionFactory吗?

我可以配置Hibernate自动扫描包创建一个SessionFactory@Entity注释豆?

目前我正在使用

Configuration config = new Configuration() ;
config.addAnnotatedClass(MyEntity.class);
Run Code Online (Sandbox Code Playgroud)

我不想hibernate.cfg.xml用来配置映射.

请注意我想在普通的Java项目中实现这一点,而不使用任何Spring或此类框架.

使用Spring之前已经回答了类似的问题,但我想在不使用Spring或其他框架的情况下实现它.我对一些这样做的简单库开放.

java hibernate hibernate-mapping

9
推荐指数
1
解决办法
2570
查看次数

Spring Security OAuth 2.0 - 授权代码授予始终需要客户端密钥

根据规范,只要client_id请求包含在请求中并且client_id与用于生成代码的请求相同,就不需要对使用授权代码授权的令牌进行认证.但是,使用Spring Security OAuth 2.0实现,/oauth/token即使从未为客户端分配了密钥,端点上也始终需要基本身份验证.

由于界面中的isSecretRequired()方法,看起来支持允许没有秘密的客户端ClientDetails.我需要做些什么来启用没有秘密的客户端在/oauth/tokenURL 上进行身份验证?

4.1.3.访问令牌请求

客户端通过
使用
附录B中的"application/x-www-form-urlencoded" 格式发送以下参数,并在HTTP
请求实体主体中使用UTF-8的字符编码来向令牌端点发出请求:

grant_type REQUIRED.值必须设置为"authorization_code".

代码必需.从授权服务器接收的授权代码.

redirect_uri REQUIRED,如果"redirect_uri"参数包含在第4.1.1节中描述的授权请求中,并且它们的值必须相同.

client_id REQUIRED,如果客户端未使用授权服务器进行身份验证,如第3.2.1节中所述.

如果客户端类型是机密的或客户端已获得客户端凭证(或分配了其他身份验证要求),则
客户端必须使用授权服务器进行身份验证,如
第3.2.1节中所述.

security spring oauth-2.0 spring-security-oauth2

9
推荐指数
2
解决办法
8180
查看次数

我应该通过HTTP标头或邮政正文将凭据作为JSON传递给REST Api吗?

我正在尝试使用基于令牌的身份验证创建Rest Api.

是否有最佳做法将凭证从客户端传递到服务器以生成令牌.作为HTTP标题或邮件正文中的JSON字符串

我一直在寻找,但无法找到任何具体的答案.

security authentication rest basic-authentication

9
推荐指数
1
解决办法
6752
查看次数