0

当我想在 Integration Studio 8.0.1 中导入和加载项目并双击 src/main/synapse-config/api/ApiName.xml(导入后)时,它会在 Design 选项卡和 Source 中生成一个空白页选项卡仅保留此:

<?xml version="1.0" encoding="UTF-8"?>
<api context="/api-uri" name="ApiName" xmlns="http://ws.apache.org/ns/synapse">
    <resource faultSequence="" methods="POST" uri-template="/ping">
        <inSequence/>
        <outSequence/>
    </resource>
</api>

(幸好原版内容保留在磁盘上)

我也有一个错误

插件:org.wso2.integrationstudio.logging
严重性:错误
消息:从源
堆栈跟踪生成图表时出错:

java.lang.IllegalStateException: Cannot modify resource set without a write transaction
    at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.assertWriting(TransactionChangeRecorder.java:349)
    at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.appendNotification(TransactionChangeRecorder.java:303)
    at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.processObjectNotification(TransactionChangeRecorder.java:285)
    at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.notifyChanged(TransactionChangeRecorder.java:241)
    at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
    at org.wso2.integrationstudio.gmf.esb.impl.APIResourceImpl.setFaultSequenceType(APIResourceImpl.java:1170)
    at org.wso2.integrationstudio.gmf.esb.diagram.custom.deserializer.APIDeserializer.createNode(APIDeserializer.java:236)
    at org.wso2.integrationstudio.gmf.esb.diagram.custom.deserializer.APIDeserializer.createNode(APIDeserializer.java:1)
    at org.wso2.integrationstudio.gmf.esb.diagram.custom.deserializer.Deserializer.updateDesign(Deserializer.java:160)
    at org.wso2.integrationstudio.gmf.esb.diagram.part.EsbMultiPageEditor$1.run(EsbMultiPageEditor.java:302)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4928)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4449)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1158)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1047)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1420)

会话数据:

eclipse.buildId=unknown
java.version=1.8.0_252
java.vendor=AdoptOpenJDK
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64

知道要检查什么吗?

4

1 回答 1

0

我发现了问题,faultSequence 参考(定义)是问题所在。删除了faultSequence="conf:sequences/ApiNameFaultSequence.xml"部分,现在图表重新加载没有错误。

<resource faultSequence="conf:sequences/ApiNameFaultSequence.xml" methods="POST" uri-template="/ping">

(ApiNameFaultSequence 是在单独的 RegistryResource 项目中创建的)

我重新创建了序列,并保存到 ApiNameConfigs/src/main/synapse-config/sequences,从那里引用,现在工作正常。新的资源定义如下所示:

<resource faultSequence="ApiNameSoapFaultSequence" methods="POST" uri-template="/ping">
于 2022-02-14T11:03:19.597 回答