2016-12-20 19 views
0

コードを使用してネットワーク機器のユーザを管理するためにACS(Cisco Secure Access Control System)を使用しようとしています。私は、製品に付属のサンプルをダウンロードし、それに基づいて作成しました。Jaxb unmarshalはデバッグ時に動作しますが、ランタイムでは動作しません。

私はデバッグモードでテストすると、すべてが素晴らしい作品が、私は、JBoss Webサーバに私の.classのファイルを入れて、別のアプリケーションからmainメソッドを実行しようとすると、私はこのエラーを取得:

unexpected element (uri:identity.rest.mgmt.acs.nm.cisco.com", local:"user"). Expected elements are (none) 

私コードは次のとおりです。私はこのようなエラーが見つかり

private static User getUserByName(RestFacade restFacade, String name) 
{ 
    User user = null; 
    String url = "/Rest/Identity/User/name/"; 
    url = url.concat(name); 
    HttpResponse response = restFacade.get(url); 
    try { 
     byte buffer[] = new byte[8192]; 
     int read = 0; 
     StringBuffer responseBody = new StringBuffer(); 
     HttpEntity entity = response.getEntity(); 
     if (entity != null) { 
      InputStream content = response.getEntity().getContent(); 
      while ((read = content.read(buffer)) != -1) { 
       responseBody.append(new String(buffer, 0, read)); 
      } 
     } 

     ByteArrayInputStream bais = new ByteArrayInputStream(responseBody 
       .toString().getBytes()); 

     Unmarshaller unmarshaller = JAXBContext.newInstance(User.class).createUnmarshller(); 
     user = (User) unmarshaller.unmarshal(bais); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    return user; 
} 

ほぼすべてのソリューション、私はXSDを呼び出すか、変更しようとしているが、私はそれらへのアクセスを持っていない残りの方法で何かを変更すると述べました。..

奇妙なことは、Eclipseからデバッグしても実行時にはデバッグしても機能しないということです。 JAXBとは別のバージョンがありますか?どのJarファイルが読み込まれるのか確認するにはどうすればいいですか?

ありがとう、 イゴール。

答えて

0

デバッグに使用する開発環境のように聞こえますが、ターゲットアプリケーションサーバーには、JAXBクラス/ライブラリおよび/または使用されているXSDのバージョンが異なります。

ドキュメント(http://www.cisco.com/c/en/us/td/docs/net_mgmt/cisco_secure_access_control_system/5-3/sdk/acs_sdk/rest.html)は、3つのXSD(Common、Identity、Query)を指定しています。

ターゲットアプリケーションサーバー上に生成されたJAXBクラスと一致するバージョンを確認しましたか?

+0

返信いただきありがとうございます。 「ターゲットアプリケーションサーバー」と言えば、コードを呼び出す場所、またはRestサービスが実行されている場所を意味しますか? – user3082833

関連する問題