Моя фактическая проблема - это вывод названия, но название является основной причиной моей проблемы:Почему нельзя использовать GenericArrayTypeImpl для java.lang.Class в java 6, когда это возможно в java 7?
Я разрабатываю веб-приложение java на работе. Сервер, на который мое приложение будет развернуто, принимает только java 6 или ниже (WebLogic 10.3.2)
Мне нужно вызвать веб-службу в своем приложении. Мой опыт в этой области ограничен. Я был в состоянии сделать его работу, но когда я интегрирован мой код в веб-приложения, скомпилированные и протестировали его, я получил эту ошибку:
Exception in thread "main" java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.GenericArrayTypeImpl cannot be cast to java.lang.Class
at com.sun.xml.internal.bind.v2.model.impl.RuntimeModelBuilder.createArrayInfo(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.RuntimeModelBuilder.createArrayInfo(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.ElementInfoImpl.<init>(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.RuntimeElementInfoImpl.<init>(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.RuntimeModelBuilder.createElementInfo(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.RuntimeModelBuilder.createElementInfo(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.RegistryInfoImpl.<init>(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.addRegistry(Unknown Source)
at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(Unknown Source)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source)
at com.sun.xml.internal.bind.api.JAXBRIContext.newInstance(Unknown Source)
at com.sun.xml.internal.ws.developer.JAXBContextFactory$1.createJAXBContext(Unknown Source)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl$1.run(Unknown Source)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.createJAXBContext(Unknown Source)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.postProcess(Unknown Source)
at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.createSEIPortInfo(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(Unknown Source)
at javax.xml.ws.Service.getPort(Unknown Source)
at com.example.mypackage.MyClient.invokeService(MyClient.java:64)
at Test.main(Test.java:7)
Я проследили эту ошибку снова стать проблемой ява версии. Он работает в 7, но исключение бросается на выполнение метода, если я скомпилирую в 6, что я должен сделать для веб-приложения. Линия, на которой брошено мое исключение, это один с NotificationRecieverSoapInterface.class
ниже:
NotifikationRecieverSoap service = null;
try {
service = new NotifikationRecieverSoap(new URL("[myURL].svc?wsdl"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
NotificationRecieverSoapInterface notificationService = service.getPort(NotificationRecieverSoapInterface.class);
notifikationService.createNotificationRequest(logHeader, loginModule, parmV, priority, recipients);
Service.getPort()
-метод кажется идентичным в двух версиях Java, так что я в недоумении там. sun.reflect.generics.reflectiveObjects.GenericArrayTypeImpl
также идентичны в 6 и 7.
Ближайшая вещь, с которой я столкнулся с подобной проблемой в Интернете, была следующая: http://forum.spring.io/forum/spring-projects/container/26020-classcastexception-genericarraytypeimpl-cannot-be-cast-to-class. К сожалению, решение здесь состояло в том, что весной была ошибка, которую я не использую ...
Кто-нибудь знает более конкретно, что моя проблема, и если ее можно обойти, используя только Java 6?
У меня есть намного больше кода для показа. Я выбрал те части, которые, по моему мнению, наиболее актуальны для этой проблемы. Я могу предоставить классы, создаваемые jax-ws для структуры данных, а также образцы xml, по запросу.
Делитесь информацией об отладке, когда вы устанавливаете точку останова в своей среде IDE. Это покажет нам лучший контекст – Woot4Moo
Хороший план. Я доберусь до него – KjetilNordin
@ Woot4Moo ... Пока не повезло. Я борюсь с источниками и javadocs в моей настройке maven. Я не становлюсь ближе к поиску отладочных данных, когда останавливает строки, которые выдают исключения из моего собственного кода ... – KjetilNordin