GVKun编程网logo

如何在远程WebSphere上的JNDI查找期间解决sun / io / MalformedInputException(ora-04052在查找远程对象)

22

本文将为您提供关于如何在远程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在查找远程对象)

如何在远程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类)。

你可以在这里找到它:

  1. 下载IBM JDK 8.0(https://www.ibm.com/developerworks/java/jdk/java8/);
  2. 将获得的存档解压缩到一个文件夹中(默认情况下为eclipseDevelopmentPackage);
  3. 从以下路径复制“ 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 序列

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

解决方法

image

总结

以上是小编为你收集整理的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

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

Caused by: java.nio.charset.MalformedInputException: Input length = 2

 java.nio.charset.MalformedInputException: Input length = 2 异常表示输入数据的长度不正确,导致字符集解析失败。

MalformedInputException 是 Java NIO(New I/O)中的一个异常类,它通常在字符集编解码时出现问题时抛出。在你的情况下,输入数据的长度为2,可能与所使用的字符集或编码方式不匹配。

要解决这个异常,你可以考虑以下几个方面:

  1. 确认输入数据的编码方式:检查你的代码中用于读取输入数据的部分,并确认所使用的字符集是否正确。如果你知道输入数据的编码方式,可以使用相应的字符集进行解码。

    例如,如果输入数据的编码为 UTF-8,你可以使用以下方式进行解码:

Charset charset = StandardCharsets.UTF_8;
String decodedString = new String(inputBytes, charset);

 

  1. 如果不确定输入数据的编码方式,可以尝试使用不同的字符集进行解码,观察是否能够成功解析数据。

  2. 处理输入数据长度不正确的情况:如果输入数据的长度确实不正确,你可能需要检查数据源或数据传输过程中是否存在问题。确保输入数据的长度和内容与预期一致,以避免解码时出现异常。

    另外,还可以尝试使用更为健壮的解码方式,如使用 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);
    }

 

  1. 考虑数据源的可靠性:如果你的输入数据来自外部源(如网络、文件、数据库等),确保源数据的完整性和正确性。在一些情况下,输入数据的损坏或错误可能导致解码异常。

    可以使用校验和或其他方法验证输入数据的完整性,并确保数据的准确性和一致性。

根据具体情况选择适当的字符集和解码方式,确保输入数据的正确解析。

 

今天关于如何在远程WebSphere上的JNDI查找期间解决sun / io / MalformedInputExceptionora-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等相关知识,可以在本站进行查询。

本文标签: