Tridion UGC 评论显示作者为空 [英] Tridion UGC comment shows author as null

查看:21
本文介绍了Tridion UGC 评论显示作者为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已为用户生成的内容配置了 Tridion,并使用默认/演示模板创建了一个网页,该模板使用文本输入字段来提供评论作者的姓名.接受评论,但在显示时将用户名显示为空".我相信问题在于存储名称,而不是检索它.如果我从内容管理器 UI 中创建评论,然后返回到我的测试网页,则会显示评论以及版主的姓名.

I have configured Tridion for User Generated content, and created a web page using the default/demo template, which uses a text input field to provide the name of the Comment's author. The comments are accepted, but when displayed they show the name of the user as "null". I believe the problem is in storing the name, not in retrieving it. If I create a comment from within the Content Manager UI, and then return to my test web page, the comment is shown, with the name of the moderator.

面向公众的 UGC 网络服务已配置 AllowAnonymousClaimProcessor.(没有这个,评论根本不会保存.)日志显示这显然成功地将丢失的 taf:claim:contentdelivery:webservice:user 转换为基于跟踪 ID 的用户.

The public-facing UGC web service has the AllowAnonymousClaimProcessor configured. (Without this, the comment isn't saved at all.) The logging shows this apparently successfully transforming the missing taf:claim:contentdelivery:webservice:user into one based on a tracking id.

当然,这个想法不是用这个作为评论的作者.在日志记录中,您还可以看到来自网页中文本输入的字符串Test User",这似乎映射到 author=com.tridion.storage.ugc.UGCUser@2598a35d,但不久之后存储层搜索ID为空的用户,并找到一个.

Of course, the idea is not to use this as the author of the comment. In the logging you can also see the string "Test User" coming from the text input in the web page, and that this seems to be mapped on to author=com.tridion.storage.ugc.UGCUser@2598a35d, but that shortly afterwards the storage layer searches for a user with ID null and finds one.

我怀疑这是一个配置问题,但正如您所看到的,它很复杂,我不确定在哪里可以进一步查看.对它应该如何工作的解释与更具体的实验建议一样受欢迎.

I suspect this is a configuration issue, but as you can see, it is complex, and I'm not really sure where to look further. Explanations of how it is supposed to work would be just as welcome as more concrete suggestions of experiments to proceed with.

日志输出如下.我已经对其进行了大量修剪,但它仍然很长,因为我不知道哪些部分可能被证明是相关的:

The logging output follows. I've trimmed it a lot but it's still pretty long as I don't know which bits might prove relevant:

2012-06-03 13:00:10,662 WARN  AmbientDataContext - There is no current ambient data context - the ambient data framework is not properly initialised
2012-06-03 13:00:10,668 DEBUG AmbientDataContext - Setting current ambient data context: com.tridion.ambientdata.web.WebContext
2012-06-03 13:00:10,903 DEBUG ClaimStore - put: uri=taf:response:cookie:generation, value=true
2012-06-03 13:00:10,906 DEBUG WebContext - setCurrentClaimStore: com.tridion.ambientdata.dotnet.DotNetClaimStore@483a0ab1, thread: Thread-1
2012-06-03 13:00:10,922 DEBUG ClaimStore - put: uri=taf:request:uri, value=/odata.svc/ItemStats(PublicationId=19,Id=320,Type=16)
2012-06-03 13:00:10,923 DEBUG ClaimStore - put: uri=taf:request:full_url, value=http://cdweb.visitorsweb.local/odata.svc/ItemStats(PublicationId=19,Id=320,Type=16)
2012-06-03 13:00:10,936 DEBUG ClaimStore - put: uri=taf:request:headers, value={content-type=[Ljava.lang.String;@5a940f82, connection=[Ljava.lang.String;@2e864e43, host=[Ljava.lang.String;@737c2891, accept=[Ljava.lang.String;@5c4b82d2}
2012-06-03 13:00:10,937 DEBUG ClaimStore - put: uri=taf:request:cookies, value={}
2012-06-03 13:00:10,937 DEBUG ClaimStore - put: uri=taf:request:parameters, value={CONTENT_TYPE=[Ljava.lang.String;@6179d854, QUERY_STRING=[Ljava.lang.String;@669a4cb}
2012-06-03 13:00:10,938 DEBUG ClaimStore - put: uri=taf:server:variables, value={REMOTE_USER=, PATH_TRANSLATED=C:\inetpub\LiveCDService\odata.svc, SERVER_PORT=80, SCRIPT_NAME=/odata.svc, REMOTE_ADDR=127.0.0.1, AUTH_TYPE=, SERVER_PROTOCOL=HTTP/1.1, REQUEST_METHOD=GET, DOCUMENT_ROOT=C:\inetpub\LiveCDService, REMOTE_HOST=127.0.0.1, SERVER_NAME=cdweb.visitorsweb.local, SECURE=false}
2012-06-03 13:00:10,943 DEBUG ClaimStore - put: uri=taf:session:id, value=tridion_1d6b8066-4b45-4047-bf63-521eaeadb439
2012-06-03 13:00:10,944 DEBUG ClaimStore - put: uri=taf:tracking:id, value=tridion_52d4956c-ae40-4c97-8eea-62d8ef7daa4c
2012-06-03 13:00:10,953 DEBUG ClaimStore - put: uri=taf:session:attributes, value={Tridion.ContentDelivery.AmbientData.ClaimStore=Tridion.ContentDelivery.AmbientData.ClaimStore}
2012-06-03 13:00:10,954 DEBUG AllowAnonymousPostClaimProcessor - No external user specified, using tracking id.
2012-06-03 13:00:10,954 DEBUG ClaimStore - put: uri=taf:claim:contentdelivery:webservice:user, value=tridion_52d4956c-ae40-4c97-8eea-62d8ef7daa4c
2012-06-03 13:00:10,964 DEBUG ClaimStore - put: uri=taf:claim:contentdelivery:webservice:post:allowed, value=false
2012-06-03 13:00:11,275 DEBUG ODataService - ODATA.NET: Resource retrieval: ItemStats(PublicationId=19,Id=320,Type=16)
2012-06-03 13:00:11,276 DEBUG WebContext - setCurrentClaimStore: com.tridion.ambientdata.dotnet.DotNetClaimStore@483a0ab1, thread: Thread-2
2012-06-03 13:00:11,289 DEBUG ODataWebserviceHandler - Requested a OData feed/entry: ItemStats(PublicationId=19,Id=320,Type=16) with type: application/json
2012-06-03 13:00:11,289 DEBUG ODataWebserviceHandler - Setting $top to 25
2012-06-03 13:00:11,291 DEBUG ResolverBase - Requested specific OData Entry
2012-06-03 13:00:13,774 DEBUG PooledDataSourceBeanConfigurer - Initializing Pooled data source
... snip
2012-06-03 13:00:13,774 DEBUG EntityManagerFactoryBeanConfigurer - Registering EntityManagerFactory to Spring Context
2012-06-03 13:00:13,778 INFO  SpringConfigurationLoader - Finished loading spring application context
2012-06-03 13:00:13,778 INFO  ConfigurationStepLoader - Executing configuration step: BundleLoader
2012-06-03 13:00:13,787 INFO  BundleConfigurationLoader - Custom storage bindings defined, loading ugc_dao_bundle.xml
2012-06-03 13:00:13,971 INFO  BundleConfigurationLoader - Added 'Comment' for storage 'persistence' with 'com.tridion.storage.ugc.dao.persistence.JPACommentDAO'.
2012-06-03 13:00:13,978 INFO  BundleConfigurationLoader - Added 'Rating' for storage 'persistence' with 'com.tridion.storage.ugc.dao.persistence.JPARatingDAO'.
2012-06-03 13:00:13,989 INFO  BundleConfigurationLoader - Added 'UGCUser' for storage 'persistence' with 'com.tridion.storage.ugc.dao.persistence.JPAUserDAO'.
2012-06-03 13:00:13,995 INFO  BundleConfigurationLoader - Added 'UGCItemStats' for storage 'persistence' with 'com.tridion.storage.ugc.dao.persistence.JPAItemStatsDAO'.
2012-06-03 13:00:14,002 INFO  ConfigurationStepLoader - Executing configuration step: FactoryLoader
2012-06-03 13:00:25,550 DEBUG ClaimStore - put: uri=taf:response:cookie:generation, value=true
2012-06-03 13:00:25,550 DEBUG WebContext - setCurrentClaimStore: com.tridion.ambientdata.dotnet.DotNetClaimStore@5e7b4ed7, thread: Thread-1
2012-06-03 13:00:25,550 DEBUG ClaimStore - put: uri=taf:request:uri, value=/odata.svc/Comments
2012-06-03 13:00:25,551 DEBUG ClaimStore - put: uri=taf:request:full_url, value=http://cdweb.visitorsweb.local/odata.svc/Comments
2012-06-03 13:00:25,551 DEBUG ClaimStore - put: uri=taf:request:headers, value={expect=[Ljava.lang.String;@717535b6, content-type=[Ljava.lang.String;@461979eb, connection=[Ljava.lang.String;@32935741, host=[Ljava.lang.String;@67458657, accept=[Ljava.lang.String;@576eeb9, content-length=[Ljava.lang.String;@4332b67c}
2012-06-03 13:00:25,551 DEBUG ClaimStore - put: uri=taf:request:cookies, value={}
2012-06-03 13:00:25,552 DEBUG ClaimStore - put: uri=taf:request:parameters, value={CONTENT_TYPE=[Ljava.lang.String;@366aa95b, QUERY_STRING=[Ljava.lang.String;@1494b146}
2012-06-03 13:00:25,552 DEBUG ClaimStore - put: uri=taf:server:variables, value={REMOTE_USER=, PATH_TRANSLATED=C:\inetpub\LiveCDService\odata.svc, SERVER_PORT=80, SCRIPT_NAME=/odata.svc, REMOTE_ADDR=127.0.0.1, AUTH_TYPE=, SERVER_PROTOCOL=HTTP/1.1, REQUEST_METHOD=POST, DOCUMENT_ROOT=C:\inetpub\LiveCDService, REMOTE_HOST=127.0.0.1, SERVER_NAME=cdweb.visitorsweb.local, SECURE=false}
2012-06-03 13:00:25,553 DEBUG ClaimStore - put: uri=taf:session:id, value=tridion_d56681a1-15aa-4eed-acdf-e6c82e6a9488
2012-06-03 13:00:25,553 DEBUG ClaimStore - put: uri=taf:tracking:id, value=tridion_79775c4b-54fe-4d5c-875d-bc0354ea77c3
2012-06-03 13:00:25,553 DEBUG ClaimStore - put: uri=taf:session:attributes, value={Tridion.ContentDelivery.AmbientData.ClaimStore=Tridion.ContentDelivery.AmbientData.ClaimStore}
2012-06-03 13:00:25,553 DEBUG AllowAnonymousPostClaimProcessor - No external user specified, using tracking id.
2012-06-03 13:00:25,553 DEBUG ClaimStore - put: uri=taf:claim:contentdelivery:webservice:user, value=tridion_79775c4b-54fe-4d5c-875d-bc0354ea77c3
2012-06-03 13:00:25,555 DEBUG ClaimStore - put: uri=taf:claim:contentdelivery:webservice:post:allowed, value=true
2012-06-03 13:00:25,563 DEBUG ODataService - ODATA.NET: Inserting entity on path: Comments
2012-06-03 13:00:25,563 DEBUG WebContext - setCurrentClaimStore: com.tridion.ambientdata.dotnet.DotNetClaimStore@5e7b4ed7, thread: Thread-6
2012-06-03 13:00:25,568 DEBUG WritableCommentEntryService - Parsing comment: {d:{"Id":0,"ItemPublicationId":19,"ItemId":320,"ItemType":16,"CreationDate":"\/Date(1338728425535+120)\/","LastModifiedDate":"\/Date(1338728425535+120)\/","User":{"Id":null,"Name":"Test Name","EmailAddress":"test@email.com","ExternalId":null},"Content":"This is a test comment, which will probably appear to be anonymous","Moderator":null,"ModeratedDate":null,"Score":0,"Status":0}}.
2012-06-03 13:00:25,582 DEBUG UGCConfigurationLoader - Attempt loading default storage configuration file
2012-06-03 13:00:25,671 DEBUG WritableCommentEntryService - Storing comment: Comment [commentId=0, content=This is a test comment, which will probably appear to be anonymous, itemPublicationId=19, itemId=320, itemType=16, author=com.tridion.storage.ugc.UGCUser@2598a35d, creationDate=Sun Jun 03 15:00:25 CEST 2012, lastModifiedDate=Sun Jun 03 15:00:25 CEST 2012, moderatedDate=null, moderator=null, score=0, status=0].
2012-06-03 13:00:31,952 DEBUG JPADAOFactory - Loaded BinaryDAO for storageId: defaultdb
2012-06-03 13:00:31,971 DEBUG JPADAOFactory - Loaded BinaryMetaDAO for storageId: defaultdb
2012-06-03 13:00:34,260 DEBUG JPADAOFactory - Loaded TrackedPageDAO for storageId: ugcdb
...snip
2012-06-03 13:00:34,260 DEBUG JPADAOFactory - Loaded XSLTDAO for storageId: ugcdb
2012-06-03 13:00:34,260 DEBUG JPADAOFactory - Loaded CommentDAO for storageId: ugcdb
2012-06-03 13:00:34,261 DEBUG JPADAOFactory - Loaded RatingDAO for storageId: ugcdb
2012-06-03 13:00:34,261 DEBUG JPADAOFactory - Loaded UGCUserDAO for storageId: ugcdb
2012-06-03 13:00:34,261 DEBUG JPADAOFactory - Loaded UGCItemStatsDAO for storageId: ugcdb
2012-06-03 13:00:34,261 INFO  ConfigurationStepLoader - Executing configuration step: TypeMappingCheckLoader
2012-06-03 13:00:34,266 INFO  ConfigurationStepLoader - Executing configuration step: ConfigurationItemTypeLoader
2012-06-03 13:00:34,270 INFO  ConfigurationItemTypeLoader - Loaded default storage: brokerdb
2012-06-03 13:00:34,270 DEBUG ConfigurationItemTypeLoader - Loading default global typeMappings
2012-06-03 13:00:34,270 DEBUG ConfigurationItemTypeLoader - Loaded mapping: page to storage: brokerdb
2012-06-03 13:00:34,270 DEBUG ConfigurationItemTypeLoader - Loaded mapping: comment to storage: ugcdb
2012-06-03 13:00:34,270 DEBUG ConfigurationItemTypeLoader - Loaded mapping: rating to storage: ugcdb
2012-06-03 13:00:34,271 DEBUG ConfigurationItemTypeLoader - Loaded mapping: ugcuser to storage: ugcdb
2012-06-03 13:00:34,271 DEBUG ConfigurationItemTypeLoader - Loaded mapping: ugcitemstats to storage: ugcdb
2012-06-03 13:00:34,271 DEBUG ConfigurationItemTypeLoader - Loading publication storage mappings
2012-06-03 13:00:34,271 INFO  ConfigurationStepLoader - Executing configuration step: CacheLoader
2012-06-03 13:00:34,272 INFO  ConfigurationStepLoader - Executing configuration step: StorageWrapperLoader
2012-06-03 13:00:34,283 DEBUG StorageManagerFactory - Default storage provider has caching set to: false
2012-06-03 13:00:34,283 DEBUG StorageManagerFactory - Loaded following dao Properties[publication=0, typeMapping=UGCItemStats, storageId=ugcdb, cached=false] for publication/typeMapping/itemExtension: 0 / UGCItemStats / null
2012-06-03 13:00:34,283 DEBUG StorageManagerFactory - Loading a non cached DAO for publicationId/typeMapping/itemExtension: 0 / UGCItemStats / null
2012-06-03 13:00:34,284 DEBUG StorageManagerFactory - Wrapping DAO's, currently 0 wrappers installed
2012-06-03 13:00:34,290 DEBUG StorageManagerFactory - Default storage provider has caching set to: false
2012-06-03 13:00:34,290 DEBUG StorageManagerFactory - Loaded following dao Properties[publication=0, typeMapping=Comment, storageId=ugcdb, cached=false] for publication/typeMapping/itemExtension: 0 / Comment / null
2012-06-03 13:00:34,290 DEBUG StorageManagerFactory - Loading a non cached DAO for publicationId/typeMapping/itemExtension: 0 / Comment / null
2012-06-03 13:00:34,290 DEBUG StorageManagerFactory - Wrapping DAO's, currently 0 wrappers installed
2012-06-03 13:00:34,291 DEBUG JPACommentDAO - Add comment to storage: Comment [commentId=0, content=This is a test comment, which will probably appear to be anonymous, itemPublicationId=19, itemId=320, itemType=16, author=com.tridion.storage.ugc.UGCUser@2598a35d, creationDate=Sun Jun 03 15:00:25 CEST 2012, lastModifiedDate=Sun Jun 03 15:00:25 CEST 2012, moderatedDate=null, moderator=null, score=0, status=0].
2012-06-03 13:00:34,295 INFO  StorageManagerTransactionMonitor - Starting storage transaction monitoring
2012-06-03 13:00:34,296 DEBUG StorageManagerFactory - Default storage provider has caching set to: false
2012-06-03 13:00:34,296 DEBUG StorageManagerFactory - Loaded following dao Properties[publication=0, typeMapping=UGCUser, storageId=ugcdb, cached=false] for publication/typeMapping/itemExtension: 0 / UGCUser / null
2012-06-03 13:00:34,296 DEBUG StorageManagerFactory - Loading a non cached DAO for publicationId/typeMapping/itemExtension: 0 / UGCUser / null
2012-06-03 13:00:34,297 DEBUG StorageManagerFactory - Wrapping DAO's, currently 0 wrappers installed
2012-06-03 13:00:34,297 DEBUG JPAUserDAO - Searching for user with id null in storage.
2012-06-03 13:00:34,847 DEBUG ResolverBase - Entry: com.tridion.webservices.odata.input.ODataInputElementType@6bd8c046 was selected, checking if expanding is needed
2012-06-03 13:00:34,858 DEBUG JPAUserDAO - User already in storage. No need to create new one.
2012-06-03 13:00:34,894 DEBUG WebContext - setCurrentClaimStore: null, thread: Thread-2
2012-06-03 13:00:34,912 DEBUG WebContext - setCurrentClaimStore: null, thread: Thread-1
2012-06-03 13:00:34,967 DEBUG WebContext - setCurrentClaimStore: null, thread: Thread-6
2012-06-03 13:00:34,968 DEBUG WebContext - setCurrentClaimStore: null, thread: Thread-8
2012-06-03 13:00:34,991 DEBUG ClaimStore - put: uri=taf:response:cookie:generation, value=true
2012-06-03 13:00:34,991 DEBUG WebContext - setCurrentClaimStore: com.tridion.ambientdata.dotnet.DotNetClaimStore@46798249, thread: Thread-1
2012-06-03 13:00:34,991 DEBUG ClaimStore - put: uri=taf:request:uri, value=/odata.svc/Comments
2012-06-03 13:00:34,993 DEBUG ClaimStore - put: uri=taf:request:full_url, value=http://cdweb.visitorsweb.local/odata.svc/Comments
2012-06-03 13:00:34,993 DEBUG ClaimStore - put: uri=taf:request:headers, value={content-type=[Ljava.lang.String;@5358aac4, host=[Ljava.lang.String;@6233549b, accept=[Ljava.lang.String;@17f7be7b}
2012-06-03 13:00:34,993 DEBUG ClaimStore - put: uri=taf:request:cookies, value={ASP.NET_SessionId=e3kzwdajhvc3ickvtjavm0co}
2012-06-03 13:00:34,994 DEBUG ClaimStore - put: uri=taf:request:parameters, value={CONTENT_TYPE=[Ljava.lang.String;@9fa8988, $orderby=[Ljava.lang.String;@1f5b44d6, QUERY_STRING=[Ljava.lang.String;@21044daf, $filter=[Ljava.lang.String;@21882d18, $expand=[Ljava.lang.String;@734893da, $top=[Ljava.lang.String;@21e30857, $skip=[Ljava.lang.String;@40389922}
2012-06-03 13:00:34,994 DEBUG ClaimStore - put: uri=taf:server:variables, value={REMOTE_USER=, PATH_TRANSLATED=C:\inetpub\LiveCDService\odata.svc, SERVER_PORT=80, SCRIPT_NAME=/odata.svc, REMOTE_ADDR=127.0.0.1, AUTH_TYPE=, SERVER_PROTOCOL=HTTP/1.1, REQUEST_METHOD=GET, DOCUMENT_ROOT=C:\inetpub\LiveCDService, REMOTE_HOST=127.0.0.1, SERVER_NAME=cdweb.visitorsweb.local, SECURE=false}
2012-06-03 13:00:34,994 DEBUG ClaimStore - put: uri=taf:session:id, value=tridion_ee26e9d0-c82e-4731-8c62-2f6c324d256a
2012-06-03 13:00:34,995 DEBUG ClaimStore - put: uri=taf:tracking:id, value=tridion_435315be-7eca-4bda-94c8-acefdd03b594
2012-06-03 13:00:34,995 DEBUG ClaimStore - put: uri=taf:session:attributes, value={Tridion.ContentDelivery.AmbientData.ClaimStore=Tridion.ContentDelivery.AmbientData.ClaimStore}
2012-06-03 13:00:34,996 DEBUG AllowAnonymousPostClaimProcessor - No external user specified, using tracking id.
2012-06-03 13:00:34,996 DEBUG ClaimStore - put: uri=taf:claim:contentdelivery:webservice:user, value=tridion_435315be-7eca-4bda-94c8-acefdd03b594
2012-06-03 13:00:34,996 DEBUG ClaimStore - put: uri=taf:claim:contentdelivery:webservice:post:allowed, value=false
2012-06-03 13:00:34,997 DEBUG ODataService - ODATA.NET: Resource retrieval: Comments
2012-06-03 13:00:34,997 DEBUG WebContext - setCurrentClaimStore: com.tridion.ambientdata.dotnet.DotNetClaimStore@46798249, thread: Thread-6
2012-06-03 13:00:34,999 DEBUG ODataWebserviceHandler - Requested a OData feed/entry: Comments with type: application/json
2012-06-03 13:00:35,000 DEBUG ResolverBase - Requested OData collection
2012-06-03 13:00:35,003 DEBUG FilterValue - check if value: -1 is of Integer type
2012-06-03 13:00:35,003 DEBUG FilterValue - value: -1 is Integer

推荐答案

在这个问题上工作了几天后,我才意识到这个问题的解决方案是ugc_ambient_cartridge.xml"必须在网站和访问者 Web 服务的 cd_ambient_conf 中进行配置.

After several days working on this issue, I have just realized that the solution to this matter is that the "ugc_ambient_cartridge.xml" must be configured in the cd_ambient_conf of both the website and the visitor web service.

那是因为他们需要知道用户声明taf:claim:contentdelivery:webservice:user"的定义.

That's because they need to know the definition of the user claim "taf:claim:contentdelivery:webservice:user".

这篇关于Tridion UGC 评论显示作者为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆