アノテーションのアップグレード

このリリースには、Java 5 でリリースされた Java の標準アノテーションのサポートが組み込まれています。その標準は JSR 175 で定義されています。このトピックでは、バージョン 10.x へのアップグレード時にバージョン 8.1 のアノテーションに対して行われる処理について説明します。 明確な変更点としては、2 つのバージョン間での構文の相違が挙げられます。たとえば、バージョン 8.1 のアノテーションは Javadoc スタイルのコメントに埋め込まれていました。アップグレード ツールを使用してバージョン 8.1 のアプリケーションをアップグレードすると、バージョン 10.x に対応するアノテーションが存在するアノテーションはすべてツールによってアップグレードされます。旧バージョン スタイルのアノテーションは通常、そのまま残されます。残されたアノテーションはバージョン 10.x のランタイムでは無視されます。

注意 : Java 5 アノテーションの基本的な情報については、Sun の Web サイトにある「Annotations」を参照してください。

バージョン 8.1 からアップグレードされるアプリケーションに対して行われる変更の詳細なリストについては、「WebLogic Workshop 8.1 からバージョン 10.x へのアップグレード時における変更点」を参照してください。

バージョン 8.1 とバージョン 10.x のアノテーション間の関係

Java 5 アノテーション機能を利用するために Workshop バージョン 10.x では、バージョン 8.1 でサポートされていたアノテーションを移行したものが使用されます。たとえば、バージョン 8.1 の @common:operation アノテーションは、バージョン 10.x では、メソッドが Web サービスのオペレーションとして使用されることを示す @WebMethod アノテーションに置き換えられます。

バージョン 8.1 のほとんどのアノテーションについては、対応するアノテーションがバージョン 10.x に存在します。ただし、いくつかの例外があります。また、移行されたアノテーションの大部分は Apache Beehive プロジェクトの一部になっています。

注意 : 対応するアノテーションがバージョン 10.x に存在するすべてのアノテーションは、アップグレード ツールによってアップグレードされます。

バージョン 8.1 のアノテーション バージョン 10.x のアノテーション 含まれるコンポーネント タイプ
common:context weblogic.jws.Context Web サービス
common:context org.apache.beehive.controls.api.context.Context コントロール
common:control org.apache.beehive.controls.api.bean.Control 複数
common:define 対応するアノテーションはバージョン 10.x にない。  
common:message-buffer weblogic.jws.MessageBuffer Web サービス
common:message-buffer com.bea.control.annotations.MessageBuffer。コントロール インタフェースで使用される必要がある。コントロール実装でサポートされなくなっている。 コントロール
common:operation javax.jws.WebMethod Web サービス
common:operation 対応するアノテーションはバージョン 10.x にない。 コントロール
common:schema 対応するアノテーションはバージョン 10.x にない。サポートされなくなった XQuery マップと組み合わせて使用されていた。  
common:security com.bea.control.annotations.Security コントロール
common:security (callback-roles-allowed 属性) weblogic.jws.security.CallbackRolesAllowed Web サービス
common:security (run-as 属性) weblogic.jws.security.RunAs Web サービス
common:security (roles-referenced 属性) weblogic.jws.security.RolesReferenced Web サービス
common:target-namespace javax.jws.WebService アノテーションの targetNamespace 属性 Web サービス
common:xmlns 対応するアノテーションはバージョン 10.x にない。サポートされなくなった XQuery マップと組み合わせて使用されていた。 Web サービス
editor-info:code-gen 対応するアノテーションはバージョン 10.x にない。 カスタム コントロールのソース
editor-info:link 対応するアノテーションはバージョン 10.x にない。推奨される対応策については、「IDE のサポートがない場合のファイルの同期」を参照。 Web サービス
ejbgen:automatic-key-generation weblogic.ejbgen.AutomaticKeyGeneration EJB
ejbgen:cmp-field weblogic.ejbgen.CmpField EJB
ejbgen:cmr-field weblogic.ejbgen.CmrField EJB
ejbgen:compatibility weblogic.ejbgen.Compatibility EJB
ejbgen:create-default-dbms-tables weblogic.ejbgen.CreateDefaultDbmsTables EJB
ejbgen:ejb-client-jar weblogic.ejbgen.EjbClientJar EJB
ejbgen:ejb-interface weblogic.ejbgen.EjbInterface EJB
ejbgen:ejb-local-ref weblogic.ejbgen.EjbLocalRef EJB
ejbgen:ejb-ref weblogic.ejbgen.EjbRef EJB
ejbgen:entity-cache-ref weblogic.ejbgen.EntityCacheRef EJB
ejbgen:entity weblogic.ejbgen.Entity EJB
ejbgen:env-entry weblogic.ejbgen.EnvEntry EJB
ejbgen:file-generation weblogic.ejbgen.FileGeneration EJB
ejbgen:finder weblogic.ejbgen.Finder EJB
ejbgen:foreign-jms-provider weblogic.ejbgen.ForeignJmsProvider EJB
ejbgen:jar-settings weblogic.ejbgen.JarSettings EJB
ejbgen:jndi-name weblogic.ejbgen.JndiName EJB
ejbgen:local-home-method weblogic.ejbgen.LocalHomeMethod EJB
ejbgen:local-method weblogic.ejbgen.LocalMethod EJB
ejbgen:message-driven weblogic.ejbgen.MessageDriven EJB
ejbgen:method-isolation-level-pattern weblogic.ejbgen.MethodIsolationLevelPattern EJB
ejbgen:method-permission-pattern weblogic.ejbgen.MethodPermissionPattern EJB
ejbgen:relation weblogic.ejbgen.Relation EJB
ejbgen:relationship-caching-element weblogic.ejbgen.RelationshipCachingElement EJB
ejbgen:remote-home-method weblogic.ejbgen.RemoteHomeMethod EJB
ejbgen:remote-method weblogic.ejbgen.RemoteMethod EJB
ejbgen:resource-env-ref weblogic.ejbgen.ResourceEnvRef EJB
ejbgen:resource-ref weblogic.ejbgen.ResourceRef EJB
ejbgen:role-mapping weblogic.ejbgen.RoleMapping EJB
ejbgen:security-role-ref weblogic.ejbgen.SecurityRoleRef EJB
ejbgen:select weblogic.ejbgen.Select EJB
ejbgen:session weblogic.ejbgen.Session EJB
ejbgen:value-object weblogic.ejbgen.ValueObject EJB
jc:connection com.bea.control.JdbcControl.ConnectionDataSource データベース コントロール
jc:conversation com.bea.control.ServiceControl.Conversation サービス コントロールなど
jc:ejb org.apache.beehive.controls.system.ejb.EJBControl.EJBHome EJB コントロール
jc:handler com.bea.control.ServiceControl.Handler サービス コントロール
jc:jms org.apache.beehive.controls.system.jms.JMSControl.Destination JMS コントロール
jc:jms-headers org.apache.beehive.controls.system.jms.JMSControl.HeaderTypeorg.apache.beehive.controls.system.jms.JMSControl.Priorityorg.apache.beehive.controls.system.jms.JMSControl.Expirationorg.apache.beehive.controls.system.jms.JMSControl.Type JMS コントロール
jc:jms-property org.apache.beehive.controls.system.jms.JMSControl.PropertyValue JMS コントロール
jc:location com.bea.control.ServiceControl.Location サービス コントロール
jc:log 対応するアノテーションはバージョン 10.x にない。データベース コントロールの現在の実装では、ロギングはサポートされていない。 データベース コントロール
jc:parameter-xml 対応するアノテーションはバージョン 10.x にない。サポートされなくなった XQuery マップと組み合わせて使用されていた。 サービス コントロール
jc:protocol com.bea.control.ServiceControl.SOAPBinding および com.bea.control.ServiceControl.JmsSoapProtocol サービス コントロール
jc:reliable 対応するアノテーションはバージョン 10.x にない。 サービス コントロール
jc:return-xml 対応するアノテーションはバージョン 10.x にない。サポートされなくなった XQuery マップと組み合わせて使用されていた。 サービス コントロール
jc:selector 対応するアノテーションはバージョン 10.x にない。バージョン 10.x の JMS コントロールでは、メッセージの受信はサポートされていない。 サービス ブローカ コントロール
jc:sql com.bea.control.JdbcControl.SQL データベース コントロール
jc:timer com.bea.control.TimerControl.TimerSettings タイマー コントロール
jc:ws-security-callback 対応するアノテーションはバージョン 10.x にない。Web サービスで WS-Security をサポートするために使用されていた。アップグレードされたコードでは、代わりに Web Services Policy Framework (WS-Policy) を使用する必要がある。 サービス コントロール
jc:ws-security-service 対応するアノテーションはバージョン 10.x にない。Web サービスで WS-Security をサポートするために使用されていた。アップグレードされたコードでは、代わりに Web Services Policy Framework (WS-Policy) を使用する必要がある。 サービス コントロール
jcs:control-tags 対応するアノテーションはバージョン 10.x にない。 カスタム コントロールのソース
jcs:ide 対応するアノテーションはバージョン 10.x にない。 カスタム コントロールのソース
jcs:jc-jar 対応するアノテーションはバージョン 10.x にない。 カスタム コントロールのソース
jcs:suppress-common-tags 対応するアノテーションはバージョン 10.x にない。 カスタム コントロールのソース
jws:context weblogic.jws.Context Web サービス
jws:control org.apache.beehive.controls.api.bean.Control Web サービス
jws:conversation weblogic.jws.Conversation Web サービス
jws:conversation-lifetime weblogic.jws.Conversational Web サービス
jws:define 対応するアノテーションはバージョン 10.x にない。 Web サービス
jws:handler javax.jws.HandlerChain (ファイル) および javax.jws.soap.SOAPMessageHandlers (個々のクラス) Web サービス
jws:location com.bea.control.ServiceControl.Location Web サービス
jws:message-buffer weblogic.jws.MessageBuffer Web サービス
jws:operation javax.jws.WebMethod Web サービス
jws:parameter-xml 対応するアノテーションはバージョン 10.x にない。サポートされなくなった XQuery マップと組み合わせて使用されていた。 Web サービス
jws:protocol javax.jws.soap.SOAPBinding Web サービス
jws:reliable WS-Policy ファイルと weblogic.jws.Policies アノテーションを使用する。 Web サービス
jws:return-xml 対応するアノテーションはバージョン 10.x にない。サポートされなくなった XQuery マップと組み合わせて使用されていた。 Web サービス
jws:schema 対応するアノテーションはバージョン 10.x にない。サポートされなくなった XQuery マップと組み合わせて使用されていた。 Web サービス
jws:target-namespace javax.jws.WebService アノテーションの targetNamespace 属性 Web サービス
jws:wsdl javax.jws.WebService アノテーションの wsdlLocation 属性 Web サービス
jws:ws-security-callback 対応するアノテーションはバージョン 10.x にない。Web サービスで WS-Security をサポートするために使用されていた。アップグレードされたコードでは、代わりに Web Services Policy Framework (WS-Policy) を使用する必要がある。 Web サービス
jws:ws-security-service weblogic.jws.Policy アノテーションと weblogic.jws.Policies アノテーションを使用する。 Web サービス
jws:xmlns 対応するアノテーションはバージョン 10.x にない。サポートされなくなった XQuery マップと組み合わせて使用されていた。 Web サービス
jpf:controller org.apache.beehive.netui.pageflow.annotations.Jpf.Controller

ページ フロー

jpf:action org.apache.beehive.netui.pageflow.annotations.Jpf.Action ページ フロー
jpf:forward org.apache.beehive.netui.pageflow.annotations.Jpf.Forward ページ フロー
jpf:catch org.apache.beehive.netui.pageflow.annotations.Jpf.Catch ページ フロー
jpf:validation-error-forward org.apache.beehive.netui.pageflow.annotations.Jpf.Forward ページ フロー
jpf:exception-handler org.apache.beehive.netui.pageflow.annotations.Jpf.ExceptionHandler ページ フロー
jpf:message-resources org.apache.beehive.netui.pageflow.annotations.Jpf.MessageBundle ページ フロー

アノテーションの型に関連するあいまいさの解決

バージョン 8.1 とは異なり、バージョン 10.x ではアノテーションは Java 型であり、コード内でインポートされるか、または完全に修飾される必要があります。これらの型を使用するコードを追加することでバージョン 8.1 のコード内のアノテーションがアップグレードされるため、8.1 のコードですでに使用されている型と同じ名前のアノテーションが追加されるとあいまいさの問題が発生する場合があります。

たとえば、バージョン 8.1 のセッション Bean で偶然 JMS Session インタフェースが使用され、javax.jms.* がインポートされているとします。アップグレードされたセッション Bean は、@Session アノテーション (weblogic.ejbgen.Session) でマークされます。インポートには javax.jms.*weblogic.ejbgen.Session が含まれますが、コンパイラではどちらが単純な @Session アノテーションと使用されるかを識別できません。

通常ではアップグレードされたコードでのコンパイル エラーは、単にこのあいまいさが原因になっていると考えられます。この問題に対処するには、使用される場所でアノテーションの型を完全に修飾します。

関連トピック

WebLogic Workshop 8.1 からバージョン 10.x へのアップグレード時における変更点


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。