2015-09-10 4 views
0

Мне было поручено обновить некоторое старое программное обеспечение с новым java 8 и новым боссом (теперь мы используем jboss 6.4). Мне удалось задуматься, но теперь я столкнулся с проблемой, которая противоречит тому, как я работал над java.ссылка на java не работает

мы имеем в коде что-то вроде

com.mda.ohs.od.service.RetrieveSoShippingInfoRemote service = getRetrieveSoShippingInfoRemoteHome().create();       
output = (VoaRetrieveSoShippingInfo.Output) service.execute(input, output); 

SoShippingInfoFormValueObject shippingInfoFormVoOutput = (SoShippingInfoFormValueObject) output; 

сервис создан правильно, а выход является правильным. то у нас есть

com.mda.ohs.od.service.RetrieveSoSummaryRemote service = getRetrieveSoSummaryRemoteHome().create(); 
output = (VoaRetrieveSoShippingInfo.Output) service.execute(input, output); 

вывод правильно обновлен. Вот моя проблема: shippingInfoFormVoOutput также должен быть обновлен (как и со старым java и jboss), но теперь это уже не так, и это создает проблему. Кто-нибудь знает, почему ссылка не передается должным образом в моем назначении

SoShippingInfoFormValueObject shippingInfoFormVoOutput = (SoShippingInfoFormValueObject) output; 

Является ли это проблемой ява конфигурации или затмение (мой IDE) или JBoss?

Благодаря

+0

Расширяет ли 'VoaRetrieveSoShippingInfo.Output'' SoShippingInfoFormValueObject'? – itwasntme

+0

Я могу в значительной степени гарантировать, что «ссылка передана должным образом». Если, скажем, члены 'output' изменены в' service.execute', то ** iif ** значение, которое возвращается из 'service.execute', является * одним и тем же объектом *, они будут там отражены. Я подозреваю что-то дальше по линии, чем код, который вы нам показали. –

+0

Что вы называете «обновленным»? – dotvav

ответ

0

После более изучений кода, я думаю, что, как сказал Ньютон в @ Dave его комментарий о том, что ссылка правильно передаются с выхода на shippingInfoFormVoOutput вопроса, как представляется, в output = (VoaRetrieveSoShippingInfo.Output) service.execute(input, output); уступки возвращаемого значения для вывода не использует ту же самую выходную ссылку, которая уже существует, но создает новую, поэтому shippingInfoFormVoOutput и вывод теперь не относятся к одному и тому же объекту. Почему новый объект создается для моего вывода, а не просто обновляет уже существующий объект?

Смежные вопросы