Problem: java.lang.IllegalArgumentException: Invalid JNI signature character ';'

1. When debug web application in JDeveloper(Studio Edition Version 11.1.1.3.0), it may throw exception:

	java.lang.IllegalArgumentException: Invalid JNI signature character ';'
	at com.sun.tools.jdi.JNITypeParser.nextTypeName(JNITypeParser.java:218)
	at com.sun.tools.jdi.JNITypeParser.typeNameList(JNITypeParser.java:122)
	at com.sun.tools.jdi.JNITypeParser.typeName(JNITypeParser.java:67)
	at com.sun.tools.jdi.TypeImpl.name(TypeImpl.java:26)
	at com.sun.tools.jdi.ReferenceTypeImpl.compareTo(ReferenceTypeImpl.java:132)
	at com.sun.tools.jdi.ReferenceTypeImpl.compareTo(ReferenceTypeImpl.java:15)
	at java.util.TreeMap.put(TreeMap.java:545)
	at java.util.TreeSet.add(TreeSet.java:238)
	at com.sun.tools.jdi.VirtualMachineImpl.addReferenceType(VirtualMachineImpl.java:764)
	at com.sun.tools.jdi.VirtualMachineImpl.referenceType(VirtualMachineImpl.java:880)
	at com.sun.tools.jdi.EventSetImpl$ClassPrepareEventImpl.<init>(EventSetImpl.java:351)
	at com.sun.tools.jdi.EventSetImpl.createEvent(EventSetImpl.java:698)
	at com.sun.tools.jdi.EventSetImpl.build(EventSetImpl.java:610)
	at com.sun.tools.jdi.EventQueueImpl.removeUnfiltered(EventQueueImpl.java:193)
	at com.sun.tools.jdi.EventQueueImpl.remove(EventQueueImpl.java:78)
	at com.sun.tools.jdi.EventQueueImpl.remove(EventQueueImpl.java:64)
Solution:
add: -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true to JVM parameter.
Steps:
1. in jdeveloper: run ->choose Active Run Configuration -> Manage Run Configuration
2. select <Default> and click <Edit...> button
3. add -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true to <Java Options>
4. re-debug your web application

猜你喜欢

转载自fengyonghui.iteye.com/blog/898303
今日推荐