Задача Weblogic Ant JWSC по созданию веб — сервиса-это проблема

#java #build #ant #weblogic #webmethod

#Ява #строить #муравей #блог #веб-метод

Вопрос:

Извините, я новичок в Веблогике .Похоже, у меня проблемы с jwsc.Я хочу вернуть ResponseObject, но, похоже, это проблема. пожалуйста, помогите мне.

Я получаю следующую ошибку.

 appinf-deploy:  [ear] Building ear: C:ICF_AutoCapsule_disabled0.pWebserviceWebserviceAearsA.ear  create:  [echo] wsdl より webservice 用テンプレートソースを作成します。  build:  [echo] ビルド処理を行います。  compile:  [echo] ソースファイルをコンパイルします。  [javac] Compiling 7 source files to C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceD002Serviceclasses Warning: Reference webservice.lib.path has not been set at runtime, but was found during build file parsing, attempting to resolve. Future versions of Ant may support  referencing ids defined in non-executed targets.  [javac] 注:一部の入力ファイルは推奨されない API を使用またはオーバーライドしています。  [javac] 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。  generate.service:  [echo] C:/ICF_AutoCapsule_disabled/00.project/Webservice/Webservice/A/ears  [jwsc] JWS: processing module /jp/co/project/d002/D002ServiceImpl  [jwsc] Parsing source files  [jwsc] Parsing source files  [jwsc] 1 JWS files being processed for module /jp/co/project/d002/D002ServiceImpl  [jwsc] [JAM] Warning: failed to resolve class ResponseData  [jwsc] [JAM] Warning: failed to resolve class RequestData  [jwsc] C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceImplementationServicesrcjpcoprojectd002D002ServiceImpl.java 70:25  [jwsc] [WARNING] - メソッドsendの戻り値に使用されているタイプResponseDataはデフォルト・コンストラクタを持たないため、XMLにバインドできない可能性があります。  [jwsc] C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceImplementationServicesrcjpcoprojectd002D002ServiceImpl.java 70:25  [jwsc] [WARNING] - メソッドsendのパラメータrequestObjectに使用されているタイプRequestDataはデフォルト・コンストラクタを持たないため、XMLにバインドできない可能性があります。  [jwsc] C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceImplementationServicesrcjpcoprojectd002D002ServiceImpl.java 131:25  [jwsc] [WARNING] - メソッドinitの戻り値に使用されているタイプResponseDataはデフォルト・コンストラクタを持たないため、XMLにバインドできない可能性があります。  [jwsc] JWS: C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceImplementationServicesrcjpcoprojectd002D002ServiceImpl.java Validated.  [jwsc] [SEVERE] Could not resolve class: RequestData  [jwsc] [SEVERE] Could not resolve class: ResponseData  [jwsc] [SEVERE] initialization errors encountered, skipping compilation  [jwsc] weblogic.wsee.bind.buildtime.BindingException: Could not resolve class: RequestData  [jwsc] Could not resolve class: ResponseData  [jwsc] initialization errors encountered, skipping compilation [AntUtil.deleteDir] Deleting directory C:Users11A632~1AppDataLocalTemp_2huhcl  BUILD FAILED C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceAbuild.xml:216: The following error occurred while executing this line: C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceAbuild.xml:1599: The following error occurred while executing this line: C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceAbuild.xml:1642: weblogic.wsee.tools.jws.build.CompileException: Error compiling web service: C:ICF_AutoCapsule_disabled0.projectWebserviceWebserviceImplementationServicesrcjpcoprojectd002D002ServiceImpl.java 

Мой Исходный Код

BUILD.XML

 lt;target name="generate.service"gt;  lt;taskdef name="jwsc"  classname="weblogic.wsee.tools.anttasks.JwscTask"  classpath="C:/ICF_AutoCapsule_disabled/oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar"   /gt;   lt;jwsc srcdir="..ImplementationServicesrc" destdir="${workspace.directory}/${project.A}/${ear.directory}" gt;  lt;jws file="jpcoprojectd002D002ServiceImpl.java" gt;   lt;/jwsgt;   lt;/jwscgt;  lt;echo message="ear ファイルを生成もしくは既に存在する ear へサービスコンポーネントを追加します。"/gt;   lt;/targetgt; 

D002ServiceImp.java :

 package jp.co.project.d002;  import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding;  import jp.co.project.common.ForwardResponseBuilder; import jp.co.project.common.SystemErrorResponseBuilder; import jp.co.project.util.MessageKeys; import jp.co.project.util.PropertyKeys; import jp.co.project.webservice.FactoryFinder; import jp.co.project.webservice.binding.ValueHolder; import jp.co.project.webservice.exception.SystemException; import jp.co.project.webservice.exception.SystemExceptionManager; import jp.co.project.webservice.resource.Resource;  //WebLogic 固有のアノテーションをインポートする  import jp.co.project.webservice.resource.message.MessageResourceFactory; import jp.co.project.webservice.response.ResponseBuilder; import jp.co.project.webservice.response.ResponseDirector; import jp.co.project.webservice.response.ResponseDirectorFactory; import jp.co.project.webservice.utils.Debug; import jp.co.project.webservice.utils.FactoryNames; import weblogic.jws.WLHttpTransport; //クラスレベルのアノテーション @WebService(name="A", serviceName="D002Service",  targetNamespace="http://example.org") @SOAPBinding(style=SOAPBinding.Style.DOCUMENT,  use=SOAPBinding.Use.LITERAL,  parameterStyle=SOAPBinding.ParameterStyle.WRAPPED) @WLHttpTransport(contextPath="A", serviceUri="D002",portName="8080") public class D002ServiceImpl implements D002Service {  @WebMethod()  public ResponseData send(RequestData requestObject) throws java.rmi.RemoteException {  Debug.begin();  ResponseBuilder builder = null;  try {  if (!requestObject.getTrncd().equalsIgnoreCase(D002.SELF_ID)) {  MessageResourceFactory messages = (MessageResourceFactory) FactoryFinder.getFactory(FactoryNames.MessageResourceFactory);  Resource message = messages.getResource();  throw new IllegalAccessException(message.getString(MessageKeys.ILLEGALACCESS_ERROR));  }  // 1. RequestData を ValueHolder として値を保持する。  ValueHolder inputHolder = ValueHolder.parse(requestObject.getTrncd().toUpperCase(), requestObject);  if(!requestObject.getCrtid().equalsIgnoreCase("PF04")) inputHolder.checkSessionTimeout();   // 2. WTC を実行し処理結果を取得する。  D002BusinessDelegator delegator = new D002BusinessDelegator();  ValueHolder outputHolder = delegator.invoke(inputHolder);   String id = (String) outputHolder.getValue(PropertyKeys.VIEW_ID);  if (id.equalsIgnoreCase(D002.SELF_ID)) {  builder = new D002ResponseBuilder(outputHolder);  } else {  // 他画面に遷移するということは、D002 で使用していたデータが必要なくなるということ。  // その為、Sessionに保存していた D002 のデータはここで消去します。  ValueHolder holder = ValueHolder.newInstance(D002.SELF_ID);  holder.remove();  builder = new ForwardResponseBuilder(outputHolder, new ResponseDataCodec());  }  } catch (SystemException e) {  Debug.abort();  SystemExceptionManager.unthrowSystemException(e);  builder = new SystemErrorResponseBuilder(new ResponseDataCodec(), e.getMessageKey(MessageKeys.SYSTEM_ERROR));  } catch (Exception e) {  Debug.abort();  SystemExceptionManager.unthrowSystemException(e);  builder = new SystemErrorResponseBuilder(new ResponseDataCodec(), MessageKeys.UNKNOWN_ERROR);  }   // 3. Builder パターンを用いて ResponseData を作成する。  ResponseDirectorFactory directorFactory = (ResponseDirectorFactory) FactoryFinder.getFactory(FactoryNames.ResponseDirectorFactory);  ResponseDirector director = directorFactory.getResponseDirector();  ResponseData responseObject = (ResponseData) director.buildResponseObject(builder);   Debug.finish();   return responseObject;  }   /**  * lt;DLgt;  * lt;DTgt;lt;Bgt;メソッド概要: lt;/Bgt;lt;/DTgt;  * lt;DDgt;初期化サービスを実行します。lt;BRgt;  * WebServiceSession より取得した値で、ResponseData の初期化を行います。  * lt;/DDgt;  * lt;BRgt;  * lt;/DLgt;  *  * @@return ResponseData レスポンス情報  * @@throws java.rmi.RemoteException  */  @WebMethod()  public ResponseData init() throws java.rmi.RemoteException {  Debug.begin();  ResponseBuilder builder = null;  try {  ValueHolder inputHolder = ValueHolder.restore(D002.SELF_ID);  builder = new D002ResponseBuilder(inputHolder);  } catch (Exception e) {  Debug.abort();  SystemExceptionManager.unthrowSystemException(e);  builder = new SystemErrorResponseBuilder(new ResponseDataCodec(), MessageKeys.UNKNOWN_ERROR);  }   ResponseDirectorFactory directorFactory = (ResponseDirectorFactory) FactoryFinder.getFactory(FactoryNames.ResponseDirectorFactory);  ResponseDirector director = directorFactory.getResponseDirector();  ResponseData responseObject = (ResponseData) director.buildResponseObject(builder);  Debug.finish();  return responseObject;  }  } 

Я использую java версии «1.6.0_29» , Apache Ant версии 1.7.1 , Weblogic 11G (10.3.6)