MULE 4:Salesforce 组件:无效会话 ID 问题
MULE 4 : Salesforce Component : Invalid Session ID issue
我正在使用 MULE 4 和 Salesforce 组件 9.7.10。
在我的应用程序中,我使用 APEX REST METHOD CALL
从 Salesforce 请求一些数据。该应用程序在你 deploy/restart 几个小时后工作正常,但之后它开始抛出 INVALID_SESSION_ID 错误。
所以我更新到 9.11.0 版的 salesforce,现在我收到以下错误:
org.mule.runtime.core.internal.message.ErrorBuilder$ErrorImplementation
{
description=Could not determine the http request method!
detailedDescription=Could not determine the http request method!
errorType=SALESFORCE:UNKNOWN
cause=java.lang.IllegalArgumentException
errorMessage=-
childErrors=[]
}
任何关于上述两个问题的线索都会有所帮助。
我使用的Salesforce配置如下:
<salesforce:sfdc-config
name="Salesforce_Config"
doc:name="Salesforce Config"
doc:id="31efbe68-bae3-48ee-92e7-a1d9f2ef0a49"
fetchAllApexRestMetadata="true" >
<salesforce:cached-basic-connection
proxyHost="${secure::proxyHost}"
proxyPort="${secure::proxyPort}"
username="${secure::username}"
password="${secure::pssword}"
securityToken="${secure::token}"
url="${secure::url}"
disableSessionInvalidation="true" />
</salesforce:sfdc-config>
已升级到 Salesforce 组件 10.4.2 n=测试连接成功。现在我在尝试获取类名时收到以下错误:
org.mule.runtime.extension.api.exception.ModuleException: INVALID_TYPE: Cannot use: PlatformEventChannelMember in this version ErrorCode {http://soap.sforce.com/2006/04/metadata}INVALID_TYPE
org.mule.runtime.extension.api.exception.ModuleException: INVALID_TYPE: Cannot use: PlatformEventChannelMember in this version ErrorCode {http://soap.sforce.com/2006/04/metadata}INVALID_TYPE
Caused by: com.sforce.ws.SoapFaultException: INVALID_TYPE: Cannot use: PlatformEventChannelMember in this version
at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:226)
at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:163)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:108)
at com.sforce.soap.metadata.MetadataConnection.listMetadata(MetadataConnection.java:404)
at org.mule.extension.salesforce.internal.service.MetadataServiceImpl.lambda$listMetadata(MetadataServiceImpl.java:302)
at org.mule.extension.salesforce.internal.connection.ForceWSCConnection.executeOverMetadataClient(ForceWSCConnection.java:466)
at org.mule.extension.salesforce.internal.service.ForceWSCService.executeOverMetadataClient(ForceWSCService.java:40)
at org.mule.extension.salesforce.internal.service.MetadataServiceImpl.listMetadata(MetadataServiceImpl.java:302)
at org.mule.extension.salesforce.internal.metadata.StreamingChannelMetadataResolver.getMetadataKeysForChangeDataCaptureEvents(StreamingChannelMetadataResolver.java:123)
at org.mule.extension.salesforce.internal.metadata.StreamingChannelMetadataResolver.getKeys(StreamingChannelMetadataResolver.java:79)
at org.mule.runtime.module.extension.internal.runtime.config.ConfigurationProviderToolingAdapter.addComponentKeys(ConfigurationProviderToolingAdapter.java:121)
at org.mule.runtime.module.extension.internal.runtime.config.ConfigurationProviderToolingAdapter.getMetadataKeys(ConfigurationProviderToolingAdapter.java:105)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.lambda$getMetadataKeys[=12=](MuleMetadataService.java:69)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.exceptionHandledMetadataFetch(MuleMetadataService.java:145)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.getMetadataKeys(MuleMetadataService.java:69)
at org.mule.runtime.config.internal.LazyMetadataService.lambda$getMetadataKeys[=12=](LazyMetadataService.java:58)
at java.util.Optional.orElseGet(Optional.java:267)
at org.mule.runtime.config.internal.LazyMetadataService.getMetadataKeys(LazyMetadataService.java:58)
at com.mulesoft.agent.services.metadata.MuleAgentMetadataService.lambda$getMetadataKeysApplication[=12=](MuleAgentMetadataService.java:56)
at com.mulesoft.agent.services.metadata.MuleAgentMetadataService.withMetadataService(MuleAgentMetadataService.java:145)
at com.mulesoft.agent.services.metadata.MuleAgentMetadataService.getMetadataKeysApplication(MuleAgentMetadataService.java:56)
at com.mulesoft.agent.external.handlers.metadata.MetadataRequestHandler.lambda$getMetadataKeysApplication[=12=](MetadataRequestHandler.java:137)
at com.mulesoft.agent.util.ResponseHelper.response(ResponseHelper.java:88)
at com.mulesoft.agent.external.handlers.metadata.MetadataRequestHandler.getMetadataKeysApplication(MetadataRequestHandler.java:135)
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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.run(AbstractJavaResourceMethodDispatcher.java:151)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:387)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:331)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:103)
at org.glassfish.jersey.server.ServerRuntime.run(ServerRuntime.java:271)
at org.glassfish.jersey.internal.Errors.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:876)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at com.mulesoft.agent.rest.RequestLoggingFilter.doFilter(RequestLoggingFilter.java:95)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1711)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1347)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1678)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1249)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:505)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917)
at java.lang.Thread.run(Thread.java:748)
对于版本 9.x 我修复了如下问题:
- 使用获取会话 ID 组件获取会话 ID
- 使用会话 ID 和 HTTP 请求组件来使用 SALESFORCE API 作为 REST 服务调用
对于版本 10.x,解决方案是通过以下步骤替换 9.x 的 upsert 批量组件:
- 使用“创建工作”组件创建一个 SALESFORCE 工作
- 创建 BATCH 并使用步骤 1 中收到的“创建批次”中的 JOB ID 将其添加到 Salesforce
- 使用“关闭作业”组件关闭作业
我正在使用 MULE 4 和 Salesforce 组件 9.7.10。
在我的应用程序中,我使用 APEX REST METHOD CALL
从 Salesforce 请求一些数据。该应用程序在你 deploy/restart 几个小时后工作正常,但之后它开始抛出 INVALID_SESSION_ID 错误。
所以我更新到 9.11.0 版的 salesforce,现在我收到以下错误:
org.mule.runtime.core.internal.message.ErrorBuilder$ErrorImplementation
{
description=Could not determine the http request method!
detailedDescription=Could not determine the http request method!
errorType=SALESFORCE:UNKNOWN
cause=java.lang.IllegalArgumentException
errorMessage=-
childErrors=[]
}
任何关于上述两个问题的线索都会有所帮助。
我使用的Salesforce配置如下:
<salesforce:sfdc-config
name="Salesforce_Config"
doc:name="Salesforce Config"
doc:id="31efbe68-bae3-48ee-92e7-a1d9f2ef0a49"
fetchAllApexRestMetadata="true" >
<salesforce:cached-basic-connection
proxyHost="${secure::proxyHost}"
proxyPort="${secure::proxyPort}"
username="${secure::username}"
password="${secure::pssword}"
securityToken="${secure::token}"
url="${secure::url}"
disableSessionInvalidation="true" />
</salesforce:sfdc-config>
已升级到 Salesforce 组件 10.4.2 n=测试连接成功。现在我在尝试获取类名时收到以下错误:
org.mule.runtime.extension.api.exception.ModuleException: INVALID_TYPE: Cannot use: PlatformEventChannelMember in this version ErrorCode {http://soap.sforce.com/2006/04/metadata}INVALID_TYPE
org.mule.runtime.extension.api.exception.ModuleException: INVALID_TYPE: Cannot use: PlatformEventChannelMember in this version ErrorCode {http://soap.sforce.com/2006/04/metadata}INVALID_TYPE
Caused by: com.sforce.ws.SoapFaultException: INVALID_TYPE: Cannot use: PlatformEventChannelMember in this version
at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:226)
at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:163)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:108)
at com.sforce.soap.metadata.MetadataConnection.listMetadata(MetadataConnection.java:404)
at org.mule.extension.salesforce.internal.service.MetadataServiceImpl.lambda$listMetadata(MetadataServiceImpl.java:302)
at org.mule.extension.salesforce.internal.connection.ForceWSCConnection.executeOverMetadataClient(ForceWSCConnection.java:466)
at org.mule.extension.salesforce.internal.service.ForceWSCService.executeOverMetadataClient(ForceWSCService.java:40)
at org.mule.extension.salesforce.internal.service.MetadataServiceImpl.listMetadata(MetadataServiceImpl.java:302)
at org.mule.extension.salesforce.internal.metadata.StreamingChannelMetadataResolver.getMetadataKeysForChangeDataCaptureEvents(StreamingChannelMetadataResolver.java:123)
at org.mule.extension.salesforce.internal.metadata.StreamingChannelMetadataResolver.getKeys(StreamingChannelMetadataResolver.java:79)
at org.mule.runtime.module.extension.internal.runtime.config.ConfigurationProviderToolingAdapter.addComponentKeys(ConfigurationProviderToolingAdapter.java:121)
at org.mule.runtime.module.extension.internal.runtime.config.ConfigurationProviderToolingAdapter.getMetadataKeys(ConfigurationProviderToolingAdapter.java:105)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.lambda$getMetadataKeys[=12=](MuleMetadataService.java:69)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.exceptionHandledMetadataFetch(MuleMetadataService.java:145)
at org.mule.runtime.core.internal.metadata.MuleMetadataService.getMetadataKeys(MuleMetadataService.java:69)
at org.mule.runtime.config.internal.LazyMetadataService.lambda$getMetadataKeys[=12=](LazyMetadataService.java:58)
at java.util.Optional.orElseGet(Optional.java:267)
at org.mule.runtime.config.internal.LazyMetadataService.getMetadataKeys(LazyMetadataService.java:58)
at com.mulesoft.agent.services.metadata.MuleAgentMetadataService.lambda$getMetadataKeysApplication[=12=](MuleAgentMetadataService.java:56)
at com.mulesoft.agent.services.metadata.MuleAgentMetadataService.withMetadataService(MuleAgentMetadataService.java:145)
at com.mulesoft.agent.services.metadata.MuleAgentMetadataService.getMetadataKeysApplication(MuleAgentMetadataService.java:56)
at com.mulesoft.agent.external.handlers.metadata.MetadataRequestHandler.lambda$getMetadataKeysApplication[=12=](MetadataRequestHandler.java:137)
at com.mulesoft.agent.util.ResponseHelper.response(ResponseHelper.java:88)
at com.mulesoft.agent.external.handlers.metadata.MetadataRequestHandler.getMetadataKeysApplication(MetadataRequestHandler.java:135)
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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.run(AbstractJavaResourceMethodDispatcher.java:151)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:387)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:331)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:103)
at org.glassfish.jersey.server.ServerRuntime.run(ServerRuntime.java:271)
at org.glassfish.jersey.internal.Errors.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:876)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at com.mulesoft.agent.rest.RequestLoggingFilter.doFilter(RequestLoggingFilter.java:95)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1711)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1347)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1678)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1249)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:505)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917)
at java.lang.Thread.run(Thread.java:748)
对于版本 9.x 我修复了如下问题:
- 使用获取会话 ID 组件获取会话 ID
- 使用会话 ID 和 HTTP 请求组件来使用 SALESFORCE API 作为 REST 服务调用
对于版本 10.x,解决方案是通过以下步骤替换 9.x 的 upsert 批量组件:
- 使用“创建工作”组件创建一个 SALESFORCE 工作
- 创建 BATCH 并使用步骤 1 中收到的“创建批次”中的 JOB ID 将其添加到 Salesforce
- 使用“关闭作业”组件关闭作业