2017-09-25 263 views
0

我用自定義rest API創建了jira服務器插件,它從活動對象的實體返回數據。它在測試實例上運行良好。插件已安裝在Prod實例上。org.eclipse.gemini.blueprint.service.importer.ServiceProxyDestroyedException:服務代理已被破壞

起初,大概一個月沒有問題。現在奇怪的是:有一段時間它也運行良好,但是後來所有的自定義API開始返回錯誤「org.eclipse.gemini.blueprint.service.importer.ServiceProxyDestroyedException:服務代理已被銷燬」。它表明,在主動obects'entity調用的代碼中存在錯誤。

實施例: SettingResource.java

@Path("settings") 
@Produces({MediaType.APPLICATION_JSON}) 
public classSettingsResource { 
    @GET 
    @Produces({MediaType.APPLICATION_JSON}) 
    public Response getSettings() throws Exception { 

     List<XmlSettings> xmlSettings = Lists.newArrayList(); 
     for (SettingsEntity entity : AOFactory.getInstance().getSettingsAO().getSettings() { 

      xmlSettings.add(SettingsMapper.toXmlSettings(entity)); 
     } 
     return Response.ok(xmlSettings).build(); 
    } 
} 

SettingsAOIMpl.java

public class SettingsAOIMpl implements SettingsAO { 

    private final ActiveObjects ao; 

    public SettingsAOIMpl(ActiveObjects ao) { 
     this.ao = ao; 
    } 
    public SettingsEntity[] getSettings() throws Exception { 
     return ao.executeInTransaction(new TransactionCallback<SettingsEntity[]) { 
      @Override 
      public SettingsEntity[] doInTransaction() { 
       return ao.find(Settings.class, Query.select()); 
      } 
     }); 
    } 
} 

REST API返回錯誤SettingsAOIMpl .getSettings。

如果我重新安裝插件,它再次運行好幾天,然後錯誤返回。

我很困惑。歡迎任何建議。

回答

0

你在使用插件中的任何監聽器嗎?如果是的話this可以幫到你。 我將此作爲答案,因爲我沒有權限對您的問題發表評論。

謝謝

+0

不,我現在沒有使用監聽器。你認爲,添加監聽器可以解決這個問題嗎?上週沒有發生錯誤。發生錯誤時,插件保持啓用狀態。插件的頁面被加載,但內容丟失,因爲內容的來源是休息api。 – nahebatoq