本文将为您提供关于如何在远程WebSphere上的JNDI查找期间解决sun/io/MalformedInputException的详细介绍,我们还将为您解释ora-04052在查找远程对象的相关知识
本文将为您提供关于如何在远程WebSphere上的JNDI查找期间解决sun / io / MalformedInputException的详细介绍,我们还将为您解释ora-04052在查找远程对象的相关知识,同时,我们还将为您提供关于"xception in thread "main" java.lang.NumberFormatException: For input string: "20、Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列、Caused by: java.nio.charset.MalformedInputException: Input length = 1、Caused by: java.nio.charset.MalformedInputException: Input length = 2的实用信息。
本文目录一览:- 如何在远程WebSphere上的JNDI查找期间解决sun / io / MalformedInputException(ora-04052在查找远程对象)
- "xception in thread "main" java.lang.NumberFormatException: For input string: "20
- Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列
- Caused by: java.nio.charset.MalformedInputException: Input length = 1
- Caused by: java.nio.charset.MalformedInputException: Input length = 2
如何在远程WebSphere上的JNDI查找期间解决sun / io / MalformedInputException(ora-04052在查找远程对象)
我使用WebSphere
8.5托管我的应用程序,并在应用程序服务器上配置了一些JDBC资源。我还使用瘦客户机运行时库开发了一个客户机应用程序。以以下方式执行JNDI查找时:
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");env.put(Context.PROVIDER_URL, "corbaloc:iiop:serv:2809");Context initialContext = new InitialContext(env);DataSource ds = (DataSource) initialContext.lookup("cell/node/servers/server/MYDB");
引发以下异常:
java.lang.NoClassDefFoundError: sun/io/MalformedInputExceptionat com.ibm.rmi.iiop.CDRReader.getTcsCConverter(CDRReader.java:451) at com.ibm.rmi.iiop.CDRReader.readStringOrIndirection(CDRReader.java:532) at com.ibm.rmi.iiop.CDRReader.read_string(CDRReader.java:518) at com.ibm.rmi.IOR.read(IOR.java:337) at com.ibm.rmi.iiop.Connection._locate(Connection.java:531) at com.ibm.rmi.iiop.Connection.locate(Connection.java:490) at com.ibm.rmi.iiop.GIOPImpl.locate(GIOPImpl.java:229) at com.ibm.rmi.corba.Corbaloc.locateUsingINS(Corbaloc.java:307) at com.ibm.rmi.corba.Corbaloc.resolve(Corbaloc.java:378) at com.ibm.rmi.corba.ORB.objectURLToObject(ORB.java:3796) at com.ibm.CORBA.iiop.ORB.objectURLToObject(ORB.java:3263) at com.ibm.rmi.corba.ORB.string_to_object(ORB.java:3694) at com.ibm.ws.naming.util.WsnInitCtxFactory.stringToObject(WsnInitCtxFactory.java:1645) at com.ibm.ws.naming.util.WsnInitCtxFactory.getWsnNameService(WsnInitCtxFactory.java:1502) at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootContextFromServer(WsnInitCtxFactory.java:1040) at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootJndiContext(WsnInitCtxFactory.java:962) at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:614) at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:128) at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:765) at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:164) at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:179) at javax.naming.InitialContext.lookup(Unknown Source) at ch.bit.easy.wf.util.Database.getConnection(Database.java:74) at ch.bit.easy.wf.ops.test.TestDBAccess.testSuccessfullyLimitedQuery(TestDBAccess.java:25) 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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)Caused by: java.lang.ClassNotFoundException: sun.io.MalformedInputException at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source)
答案1
小编典典如果要在IBM Websphere上使用Oracle JDK 8.0,请尝试将类路径中的“
ibmorb.jar”替换为较新的类(使用新的java.nio.charset.MalformedInputException类)。
你可以在这里找到它:
- 下载IBM JDK 8.0(https://www.ibm.com/developerworks/java/jdk/java8/);
- 将获得的存档解压缩到一个文件夹中(默认情况下为eclipseDevelopmentPackage);
- 从以下路径复制“ ibmorb.jar”:/eclipseDevelopmentPackage/ibm_sdk80/jre/lib/ibmorb.jar
希望这些帮助。
"xception in thread "main" java.lang.NumberFormatException: For input string: "20
spark.SparkContext: Registered listener com.cloudera.spark.lineage.ClouderaNavigatorListener
"xception in thread "main" java.lang.NumberFormatException: For input string: "20
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.valueOf(Integer.java:582)
at com.xiaodao.spark.examples.ml.AdaoKMeanService.main(AdaoKMeanService.java:166)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:730)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
17/10/12 17:42:02 INFO spark.SparkContext: Invoking stop() from shutdown hook
17/10/12 17:42:02 INFO ui.SparkUI: Stopped Spark web UI at http://192.168.1.30:4041
17/10/12 17:42:02 INFO spark.MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!
17/10/12 17:42:02 INFO storage.MemoryStore: MemoryStore cleared
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列
问题具体描述
D:\tools\java\jdk9\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:D:\tools\javaIDE\IntelliJ IDEA 2021.1\lib\idea_rt.jar=58987:D:\tools\javaIDE\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\tools\javaIDE\IntelliJ IDEA 2021.1\lib\idea_rt.jar;D:\tools\javaIDE\IntelliJ IDEA 2021.1\plugins\junit\lib\junit5-rt.jar;D:\tools\javaIDE\IntelliJ IDEA 2021.1\plugins\junit\lib\junit-rt.jar;E:\java\Spring-Student\Spring-10-Mybaties\target\test-classes;E:\java\Spring-Student\Spring-10-Mybaties\target\classes;C:\Users\make\.m2\repository\MysqL\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar;C:\Users\make\.m2\repository\org\mybatis\mybatis\3.5.9\mybatis-3.5.9.jar;C:\Users\make\.m2\repository\org\springframework\spring-jdbc\5.3.15\spring-jdbc-5.3.15.jar;C:\Users\make\.m2\repository\org\springframework\spring-beans\5.3.15\spring-beans-5.3.15.jar;C:\Users\make\.m2\repository\org\springframework\spring-core\5.3.15\spring-core-5.3.15.jar;C:\Users\make\.m2\repository\org\springframework\spring-jcl\5.3.15\spring-jcl-5.3.15.jar;C:\Users\make\.m2\repository\org\springframework\spring-tx\5.3.15\spring-tx-5.3.15.jar;C:\Users\make\.m2\repository\org\aspectj\aspectjweaver\1.9.4\aspectjweaver-1.9.4.jar;C:\Users\make\.m2\repository\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;C:\Users\make\.m2\repository\org\springframework\spring-webmvc\5.3.13\spring-webmvc-5.3.13.jar;C:\Users\make\.m2\repository\org\springframework\spring-aop\5.3.13\spring-aop-5.3.13.jar;C:\Users\make\.m2\repository\org\springframework\spring-context\5.3.13\spring-context-5.3.13.jar;C:\Users\make\.m2\repository\org\springframework\spring-expression\5.3.13\spring-expression-5.3.13.jar;C:\Users\make\.m2\repository\org\springframework\spring-web\5.3.13\spring-web-5.3.13.jar;C:\Users\make\.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\make\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\make\.m2\repository\org\projectlombok\lombok\1.18.10\lombok-1.18.10.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 MyTest,test
java.lang.ExceptionInInitializerError
at MyTest.test(MyTest.java:12)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runchild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runchild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runchildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error building sqlSession.
### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.sqlSessionFactoryBuilder.build(sqlSessionFactoryBuilder.java:80)
at org.apache.ibatis.session.sqlSessionFactoryBuilder.build(sqlSessionFactoryBuilder.java:64)
at com.Google.units.sqlSessionFactory.<clinit>(sqlSessionFactory.java:18)
... 23 more
Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:263)
at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:127)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.<init>(XMLConfigBuilder.java:82)
at org.apache.ibatis.session.sqlSessionFactoryBuilder.build(sqlSessionFactoryBuilder.java:77)
... 25 more
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
at java.xml/com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:702)
at java.xml/com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:373)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1904)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1377)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:800)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:1066)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2894)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:601)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:531)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:887)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:823)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:261)
... 28 more
Process finished with exit code -1
解决方法
总结
以上是小编为你收集整理的Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
原文地址:https://www.cnblogs.com/luoking/p/15876935.html
Caused by: java.nio.charset.MalformedInputException: Input length = 1
java.lang.IllegalStateException: Failed to load property source from location ''classpath:/application.yml''
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadIntoGroup(ConfigFileApplicationListener.java:476)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:465)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:386)
at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:225)
at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:195)
at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:182)
at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:168)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:325)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:296)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
at com.chinanums.schoolspayment.SchoolspaymentApplication.main(SchoolspaymentApplication.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:254)
at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:58)
at org.yaml.snakeyaml.Yaml.loadAll(Yaml.java:518)
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:157)
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:135)
at org.springframework.boot.env.YamlPropertySourceLoader$Processor.process(YamlPropertySourceLoader.java:101)
at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:58)
at org.springframework.boot.env.PropertySourcesLoader.load(PropertySourcesLoader.java:128)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.doLoadIntoGroup(ConfigFileApplicationListener.java:490)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadIntoGroup(ConfigFileApplicationListener.java:473)
... 22 common frames omitted
Caused by: java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:125)
at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:223)
... 31 common frames omitted
第一种可能是你的application.yml文件编码格式有问题,改为UTF-8,如下:
第二种:
可能就是你的application.yml文件是通过把其他类型的文件后缀名直接改为yml生成的,这时就需要你把application.yml中的内容全部复制,然后删除,再新建一个application.yml文件,
将复制的内容拷贝进去再运行项目就不会报错了。
Caused by: java.nio.charset.MalformedInputException: Input length = 2
java.nio.charset.MalformedInputException: Input length = 2
异常表示输入数据的长度不正确,导致字符集解析失败。
MalformedInputException
是 Java NIO(New I/O)中的一个异常类,它通常在字符集编解码时出现问题时抛出。在你的情况下,输入数据的长度为2,可能与所使用的字符集或编码方式不匹配。
要解决这个异常,你可以考虑以下几个方面:
-
确认输入数据的编码方式:检查你的代码中用于读取输入数据的部分,并确认所使用的字符集是否正确。如果你知道输入数据的编码方式,可以使用相应的字符集进行解码。
例如,如果输入数据的编码为 UTF-8,你可以使用以下方式进行解码:
Charset charset = StandardCharsets.UTF_8;
String decodedString = new String(inputBytes, charset);
-
如果不确定输入数据的编码方式,可以尝试使用不同的字符集进行解码,观察是否能够成功解析数据。
-
处理输入数据长度不正确的情况:如果输入数据的长度确实不正确,你可能需要检查数据源或数据传输过程中是否存在问题。确保输入数据的长度和内容与预期一致,以避免解码时出现异常。
另外,还可以尝试使用更为健壮的解码方式,如使用
CharsetDecoder
类进行逐个字符的解码,从而更灵活地处理输入数据的异常情况。
public static void main(String[] args) {
byte[] inputBytes = new byte[] { 1, 2, 3, 4, 5 };
Charset charset = StandardCharsets.UTF_8;
ByteBuffer inputBuffer = ByteBuffer.wrap(inputBytes);
CharBuffer outputBuffer = CharBuffer.allocate(inputBytes.length);
CharsetDecoder decoder = charset.newDecoder();
decoder.onMalformedInput(CodingErrorAction.IGNORE); // 忽略输入长度不正确的情况
decoder.decode(inputBuffer, outputBuffer, true);
decoder.flush(outputBuffer);
outputBuffer.flip();
String decodedString = outputBuffer.toString();
System.out.println("decodedString = " + decodedString);
}
-
考虑数据源的可靠性:如果你的输入数据来自外部源(如网络、文件、数据库等),确保源数据的完整性和正确性。在一些情况下,输入数据的损坏或错误可能导致解码异常。
可以使用校验和或其他方法验证输入数据的完整性,并确保数据的准确性和一致性。
根据具体情况选择适当的字符集和解码方式,确保输入数据的正确解析。
今天关于如何在远程WebSphere上的JNDI查找期间解决sun / io / MalformedInputException和ora-04052在查找远程对象的分享就到这里,希望大家有所收获,若想了解更多关于"xception in thread "main" java.lang.NumberFormatException: For input string: "20、Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列、Caused by: java.nio.charset.MalformedInputException: Input length = 1、Caused by: java.nio.charset.MalformedInputException: Input length = 2等相关知识,可以在本站进行查询。
本文标签: