0
누구나 Java Nashorn HttpEntity에서 이와 같은 클래스를 선언하도록 도울 수 있습니까? 다음은 실행하려는 샘플 스크립트입니다. Java Nashorn 일반 클래스 선언
가 code--var JavascriptValidator = Java.type('ph.com.bdo.tbg.icos.validation.form.JavascriptValidator');
var HttpHeaders = Java.type('org.springframework.http.HttpHeaders');
var DateTimeFormatter = Java.type('java.time.format.DateTimeFormatter');
var Arrays = Java.type('java.util.Arrays');
var Date = Java.type('java.util.Date');
var MediaType = Java.type('org.springframework.http.MediaType');
var HttpEntity = Java.type('org.springframework.http.HttpEntity');
var UriComponentsBuilder = Java.type('org.springframework.web.util.UriComponentsBuilder');
var RestTemplate = Java.type('org.springframework.web.client.RestTemplate');
--This 어딘가에 내 선언을 --This 것은 내가
function init(){
var headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
headers.add("username", username);
headers.add("password", password);
var entity = new HttpEntity<String>(headers);
// more code...
}
내가 오류 - 다음 얻을 --Then running--입니다 샘플 기능입니다 -
FAILED: testFinalValidate
<eval>:73 TypeError: Can not create new object with constructor org.springframework.http.HttpEntity with the passed arguments; they do not match any of its method signatures.
at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:213)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:185)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:172)
at jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.checkNullConstructor(NashornStaticClassLinker.java:108)
at jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.getGuardedInvocation(NashornStaticClassLinker.java:96)
at jdk.internal.dynalink.support.CompositeTypeBasedGuardingDynamicLinker.getGuardedInvocation(CompositeTypeBasedGuardingDynamicLinker.java:176)
at jdk.internal.dynalink.support.CompositeGuardingDynamicLinker.getGuardedInvocation(CompositeGuardingDynamicLinker.java:124)
at jdk.internal.dynalink.support.LinkerServicesImpl.getGuardedInvocation(LinkerServicesImpl.java:154)
at jdk.internal.dynalink.DynamicLinker.relink(DynamicLinker.java:253)
at jdk.nashorn.internal.scripts.Script$Recompilation$2$2171$\^eval\_.init(<eval>:73)
at jdk.nashorn.internal.scripts.Script$Recompilation$1$1772A$\^eval\_.finalValidate(<eval>:59)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:639)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
at jdk.nashorn.api.scripting.ScriptObjectMirror.call(ScriptObjectMirror.java:117)
at com.bdo.icos.util.BaseTest.runScript(BaseTest.java:194)
at com.bdo.icos.validation.SmartMoneyTest.testFinalValidate(SmartMoneyTest.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:54)
at org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:44)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
해당 Java 구문으로 변환하면 코드가 컴파일되어 성공적으로 실행됩니다.
안녕 덕분에 (자바 코드에서 붙여 넣기 절단 나타납니다). 네, 올바른 public 생성자를 사용하고 있습니다. 해결 방법 나는 "var entity = new HttpEntity (headers)"코드가 여전히 작동하므로 다음 코드를 사용하고 있습니다. 그러나 "new HttpEntity()"의 문자열 부분에 해당하는 구문이 없음을 의미합니다. –