WebSphere Application Server Versions Whats Different
WebSphere Application Server Versions Whats Different
What’s Different?
3
3
Revision Date 06/2016
WebSphere Application Server v8.0
Developer focused to Easy cloud connections for new & Smart management of
speed delivery pipeline existing apps the mission critical
• Lightweight composable runtime - • Create, expose and connect APIs • Leading edge cloud & mobile
perfect for microservices • Re-use existing apps and connect security
• Full integration with any DevOps to “on or off” premises • Enterprise Management of Java &
toolchain for continuous delivery • Deploy anywhere - on premises, Node.js
• Java EE7 market leadership and in cloud or hybrid • High availability: auto-scaling,
support for Open Source dynamic routing, health
management, diagnostics
Create WAS V9 delivers robust & modern developer environment for speed &
new cloud enterprise scalability
apps • Cloud-First Java app platform - Speed development with composable runtime
and microservices architecture;
• Full Java EE7 certification for both WAS Traditional and Liberty Profiles;
• Leverage Spring and Spring Boot frameworks within applications;
• Quick start cloud native Java apps with Liberty app accelerator and Game-On
exemplar – seamless deploy to IBM Bluemix
• Leverage end-to-end DevOps Toolchain and Garage Method (best practices)
• Portability of apps with Docker support; Deploy to IBM Container Service, Docker
Data Center, and other container services
• Seamlessly manage Java and Node.js apps and APIs through common
management interface
Optimize Move apps anywhere, in any way, to increase speed and optimize costs
costs for • Create a borderless environment with easy app portability regardless of architectural
app infra environment (Cloud container services, Docker, VMWare)
• Exploit WAS ND intelligent management for workload optimization and placement
• Move apps to the IBM public cloud with choice of pre-configured environ, flexible PayGo
pricing models
• WAS Liberty app deployment to OpenShift and Pivotal Cloud Foundry running in IBM
SoftLayer, Amazon AWS, Microsoft Azure, and IBM Bluemix
• WAS on Bluemix- Single Tenant : New option to deploy on Cloud
• Ease of use enhancements for caching to optimize user experience
Connect Connect to cloud services to integrate new capabilities, improve time to mkt
existing & lower costs
apps & • Seamlessly connect on-premises apps to cloud services like Watson, Cloudant, dashDB.
data API Connect , Log Analytics (beta) - take advantage of latest technologies and extend the
value of existing Java apps
• Optimize use of APIs for exposing and better monetizing traditional apps
• Leverage PayGo models and eliminate risk and complexity of managing these new services
• Leverage “API Connect Essentials” now included in WAS editions
10
WAS Specific 1 6 0 4 0 3
Administrative script 4 3 2 0 0 1
Other administrative 5 2 6 7 0 1
Total administrative 10 6 8 7 0 3
Revision Date 06/2016 Red indicates significant, Yellow indicate some breakage, Gray indicates deprecation.
JEE specification change analysis (2 of 3) Updated
June
traditional WebSphere
2016
v6.0 v6.1 v7.0 v8.0/v8.5 V9.0
Web Services
JAXB 2.0 2.1 2.2 2.2
JAXP 1.2 1.3 1.4 1.4 1.4
JAXR 1.0 1.0 1.0 1.0 1.0
JAX-RPC 1.1 1.1 1.1 1.1 1.1
JAX-RS 1.1 2.0
JAX-WS 2.0 2.1 2.2 2.2
RAMP 1.0 1.0 1.0 1.0
SOAP 1.1 1.2 1.2 1.2 1.2
SAAJ 1.2 1.3 1.3 1.3 1.3
MTOM n/a 1.0 1.0 1.0 1.0
StAX n/a 1.0 1.0 1.0 1.0
UDDI 3.0 3.0 3.0 3.0 3.0
W3C XML 1.0 1.0 1.0 1.0 1.0
WS-Addressing n/a 1.0 1.0 1.0 1.0
WS-AT 1.0 1.0 1.2 1.2 1.2
WS-BA n/a 1.0 1.2 1.2 1.2
14
WSDL 1.1
Red indicates 1.1indicate some breakage,
significant, Yellow 1.1 1.1
Gray indicates 1.1
deprecation.
Revision Date 06/2016
JEE specification change analysis (3 of 3) Updated
June
traditional WebSphere 2016
16
Administration changes
– Default Jython version
– New default coregroup wiring protocol
– New java extensions directory - $WAS_HOME/javaext
– Other miscellaneous changes
Development changes
– Development tool changes
– Java SE 8 upgrade
– Java EE 7 upgrade
• CDI, JAX-RS, JPA implementation change
– API removals
– API deprecations
17
Administration changes
– Some new required ports
– A number of minor default setting changes
• Information provided in the v8.5 InfoCenter
• http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.nd.do
c/ae/welc_transition.html
Development changes
– Development tool changes
– Java7 upgrade – Java6 is the default
• Breaking changes: (AWT, Internationalization, IO, JAXP, Language,
Networking, Text and Utilities)
– JPA (2)
• Custom settings are provided to provide compatibility
Conversion of existing applications to Liberty 18
Administration changes
– Installation changes
– Centralized Install Manager
– Install Factory alternative
– WebServer Plug-in installation and configuration
– Java Garbage collection and dump format changes
– Security default changes
– Other miscellaneous changes
Development changes
– Development tool changes
– JEE 1.6
– WebSphere API changes
19
Administration changes
– SessionInitiationProtocol(SIP) Migration Considerations
– zOS Migration tool
– Administration script required changes
– Port usage
– Security Migration considerations
– Mixed version considerations
Development changes
– Development tool change
– JRE 6 impacts
– JEE 5 impacts
– WebSphere removed features
– Increased usage of Open Source implementations included in WAS
20
Administration changes
– Administration script required changes
– zOS Migration tool
– Install response file format changes
– Port usage
– Profile directory structure
– New administrative tool IDE
– Migration and Feature Packs
Development changes
– Development tool change
– JRE 5 impacts
– WebSphere changes and removed features
21
Administration changes
– Administration script required changes
– Port usage
– Profiles
– JMS engine redesign
– CoreGroup considerations
Development changes
– Development tool change
– J2EE 1.4 impacts
– WebSphere API migration details
22
Google:
“websphere application server migration”
http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg27008724
23
SG24-8048
– www.redbooks.ibm.com/abstrac
ts/sg248048.html
24
26
27
Webcast replay: WebSphere Application Server V61 for z/OS Exit Plan
– http://www.ibm.com/support/docview.wss?uid=swg27035994&myns=swgws&mynp=OCSS7K4U&mync=E
28
31
32
JDK Compatibility
– http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html
– http://www.oracle.com/technetwork/java/javase/compatibility-417013.html
– http://www.oracle.com/technetwork/java/javase/compatibility-137541.html
33
34
JSF Migration
– http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=cweb_jsfmigrate
35
36
37
Resources
– JPA data source error handling
38
Security
– sslProtocol
– com.ibm.websp
39
40
Jython June
2016
41
EndPoint Name
XDAGENT_PORT 7060 7061 -- --
STATUS_LISTENER
_ADDRESS 9420 -- -- 9425
OVERLAY_UDP
_LISTENER_ADDRESS 11005 11001 11003 --
OVERLAY_TCP
_LISTENER_ADDRESS 11006 11002 11004 --
43
44
45
46
The Compatibility Guide for JDK 8 provides details of the changes in Java
– http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html
Possible application impacts are listed on the following pages with meaning
that a corresponding rule has been added to the migration toolkit.
47
AWT
– Behavior change in exceptions when setting AWT focus traversal keys
• In Java 8, the java.awt.Component.setFocusTraversalKeys() and the
java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys() methods throw ClassCastException
instead of IllegalArgumentException if any passed keystroke object is not an AWTKeyStroke object.
Internationalization
– The mechanism to select a locale service provider changed
• Java 8, the mechanism to select a locale service provider changed. A new method in the
LocaleServiceProvider class allows implementations to determine whether the given locale is supported.
JAXP
– Differences in class loading for JAXP service providers
• Java 8 includes Java API for XML Processing (JAXP) 1.6, which handles class loading for service
providers differently than previous versions.
48
Language
– java.lang.Thread.stop(java.lang.Throwable) is disabled
• In Java 8, the java.lang.Thread.stop(java.lang.Throwable) method is disabled. It was previously
deprecated.
49
Management
– MBean and MXBean interfaces must be public
• Java 8 enforces the requirement that MBean and MXBean management interfaces be public. The
specification states that management functionality cannot be exposed with non-public interfaces, but this
requirement was not enforced in Java 7 and prior versions.
Math
– Behavior change in the BigDecimal stripTrailingZeros method for a zero value
• Java 8 introduces a behavior change on the java.math.BigDecimal stripTrailingZeros method when it
operates on a zero value with a nonzero scale. In prior versions, no zeros were stripped in this case.
50
Network
– DatagramPacket constructor with SocketAddress no longer throws SocketException
• In Java 8, java.net.DatagramPacket constructors that accept a java.net.SocketAddress argument were
changed to remove the SocketException declaration. This can cause a compilation error if the
constructors are within a try block that catches either a java.net.SocketException or its superclass
java.io.IOException.
51
Security
– Certificates are blocked if they contain RSA keys of less than 1024 bits in length.
• In Java 8 with this new key size restriction, programs using X.509 certificates based on RSA keys less than 1024 bits will
encounter compatibility issues with certification path building and validation. This key size restriction also impacts JDK
components that validate X.509 certificates such as signed JAR verification, SSL/TLS transportation, and HTTPS connections.
Text
– Behavior change in rounding in the NumberFormat and DecimalFormat format methods
• In Java 8, the rounding behavior of the NumberFormat and DecimalFormat format methods changed to match the rounding of
the binary representation of the number.
Utilities
52
com.sun
– A number of com.sun packages were added to the list of restricted packages in JDK 8. com.sun
packages are not intended for application use.
• com.sun.media.sound
• com.sun.corba.se
• com.sun.mirror
• com.sun.security.auth.callback.DialogCallbackHandler
53
54
Java EE 6 CDI 1.0 was based on Web Beans 1.0 spec (JSR 299)
Java EE 7 CDI 1.2 is based on the Weld implementation
See Contexts and Dependency Injection 1.2 behavior changes
Most of the differences are captured by the Migration Toolkit and the Binary
scanner.
Using Liberty, you can continue to use CDI 1.0 with the Java EE 6 platform.
Using traditional WebSphere V9, you must upgrade.
55
An interceptor for lifecycle callbacks may only declare interceptor binding types
that are defined as @Target(TYPE)
CDI recognizes implicit bean archives
CDI scans for implicit beans when there is no beans.xml file
Check for a behavior change in the InjectionPoint getAnnotated method
Check for a valid schema in beans.xml
Check for the enablement of interceptors, decorators and alternatives in other
JAR files
Classes that use both the Specializes and Alternative annotations are not
injected into other modules
Do not use the OpenWebBeans schema for beans.xml
Producer fields on session beans must be static
The openwebbeans.properties file is not used
56
Expression Language 3.0 has one change that might cause applications to break
Behavior change in coerceToType method with null parameter
57
58
Use the isReadable and isWriteable methods to check the media type
Revision Date 06/2016
New
Check for a behavior change on message priority and the NoLocal attribute
Check for a behavior change on setClientID and createDurableSubscriber
methods
60
61
62
63
65
66
67
68
New Liberty features, and config, augment rather than replace old ones
Zero migration for unchanged apps on WAS Liberty, regardless of Java EE version
unzip wlp-javaee7-8.5.5.9.zip
old
8.5.5.9 Your configuration,
app
servlet-3.0
WLP_USER_DIR applications, Server 1
resources
9.0.0.0
16.0.0.2 new
app
unzip wlp-javaee7-8.next.zip servlet-3.1
Server 2
WebSphere
Point to your existing JRE Liberty 16.0.0.2
69
WAS V9 introduces a new 9.0.0.0 service stream for traditional WAS fixpacks.
WAS Liberty follows a continuous delivery model with a single service stream – it makes no sense to
persist with a major version for Liberty fixpacks in a ‘versionless’ single delivery stream.
To properly reflect this we are changing Liberty fixpack numbering to:
Y.R.M.F: year.release.modlevel.fixpack
eg 16.0.0.4 would be the fourth fix pack in 2016
The next fixpack after 8.5.5.9 is the second fixpack of 2016 and is numbered 16.0.0.2.
Its just a number - there is no migration required at all to the first V9 release of Liberty: 16.0.0.2.
70
to Liberty 2016
71
72
73
Application 16 17 18 18 18 20 20
DMgr 11 17 17 12 12 16 16
Node 11 17 17 11 11 13 13
Agent
74
75
AWT
– The MouseEvent.getButton() method may return values outside of the [0-3] range in the plan
• Previously, the MouseEvent.getButton method returned a value between 0 and 3 when the user clicked a
button or used the scroll wheel. To accommodate newer models of mice with two scroll wheels, or four
and five buttons, the method now returns a value from 0 to the number of buttons
– The sun.awt.exception.handler System Property has Been Replaced with Official API
• The sun.awt.exception.handler System Property is replaced with Thread.UncaughtExceptionHandler
class
77
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
Moving to Java 7 runtime
Internationalization
– Separation of User Locale and User Interface Locale
• The default locale can be independently set for two types of uses: the format setting is used for formatting
resources, and the display setting is used in menus and dialogs. The new
Locale.getDefault(Locale.Category) method takes a Locale.Category parameter. Previous behavior can
be restored
• Previously, there were 5- and 6-byte forms of utf-8 sequences that were allowed. These are now rejected
IO
– java.io.File.setReadOnly and setWriteable Methods Have New Behavior
• No longer set the DOS readonly attribute on directories. This means that these methods will fail, by
returning false, if the file is a directory. To preserve the relationship with canWrite, the canWrite method
returns true if the file is a directory.
JDBC
– New JDBC Methods, Including new Methods in Interfaces
• There are new methods to support JDBC 4.1. This includes methods added to the java.sql.Connection,
java.sql.Driver, javax.sql.CommonDatasource, and java.sql.Statement interfaces
78
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
Moving to Java 7 runtime
JAXP
– The XSLTProcessorApplet Class is Removed
• The XSLTProcessorApplet class is an application-level convenience class that had various problems. It
has been removed.
– JAX-WS Server Throws a SOAP Fault when it Encounters a DTD
• SOAP Message Construct, the XML infoset of a SOAP message MUST NOT contain a document type
declaration (DTD) information item.
Language
– The ThreadGroup.setMaxPriority Method Now Behaves as Specified
• Previousy, the ThreadGroup.setMaxPriority did not behave as specified if the passed-in value was less
than Thread.MIN_PRIORITY: it reset the input value to Thread.MIN_PRIORITY. The specification states
that a value less than Thread.MIN_PRIORITY will be ignored.
– java.lang.Character.isLowerCase/isUpperCase Methods Are Updated to Comply with the
Specified Unicode Definition
– The TypeVisitor interface has been updated
• To model the language changes in this release, several updates were made to javax.lang.model.*
including adding a method to the javax.lang.model.type.TypeVisitor interface
– Do not define methods as final on java.lang.Throwable
• Affects classes that extend Throwable. Methods addSuppressed and getSuppressed have been added.
79
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
Moving to Java 7 runtime
Networking
– Server Connection Shuts Down when Attempting to Read Data When http Response Code is -1
• HTTP protocol handler will close the connection to a server that sends a response without a valid HTTP
status line. When this occurs, any attempt to read data on that connection results in an IOException
Text
– The java.text.BreakIterator.isBoundary(int) Method Now Behaves as Specified
• The java.text.BreakIterator.isBoundary(int) method now returns false, as specified, when the given offset
is out of bounds, rather than throwing an IllegalArgumentException.
80
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
Moving to Java 7 runtime
Utilities
– Updated sort behavior for Arrays and Collections may throw an IllegalArgumentException
• The new sort implementation may throw an IllegalArgumentException if it detects a Comparable that
violates the Comparable contract
– Inserting an Invalid Element via constructor or puts methods into a TreeMap or TreeSet Throws
an NPE
• Previously it was possible to insert invalid null elements and elements not implementing the Comparable
interface into an empty TreeMap or TreeSet. Additional elements would cause the expected
NullPointerException or ClassCastException. Most other operations upon the collection would also fail.
81
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#behavioral
Revision Date 06/2016
JPA differences
83
ws-security.xml
85
85
Revision Date 06/2016
Moving to Liberty - Configuration
Configuration conversion
– The InfoCenter contains examples of converting the following:
• connectionManager
• dataSource
• jdbcDriver
– See the subtopics under the Migrating applications to Liberty topic for information
• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=twlp_mig
86
Application conversion
– Liberty is assumed to be used for developing new applications
– Applications that run on Liberty will run on Full Profile unchanged
– Some changes may need to be made if porting existing full profile
applications to Liberty. E.g.:
• Location of persistence.xml files can be anywhere in the war in Full profile, for
Liberty must be one of the following
– <war>/WEB-INF/classes/META-INF/
– <war>/lib/<jar>/META-INF/
– <ear>/<library directory/<jar>/META-INF/
• 3rd party APIs in Liberty require additional configuration (e.g.)
– <application id="ERWW_Lite" location="ERWW_Lite_EBA_PT.eba"
name="ERWW_Lite" type="ear">
<classloader allowedApiTypes="spec,ibm-api,third-party"/>
</application>
87
Application conversion…
– Some JPA query validation may differ (e.g.)
• @NamedQuery(name="commentCount", query="SELECT count(*) FROM CommentTab
comment WHERE comment.user.userid =:userid") should be:
• @NamedQuery(name="commentCount", query="SELECT count(comment) FROM
CommentTab comment WHERE comment.user.userid =:userid")
– Incorrect Servlet 3.0 namespace value is allowed on Full Profile, not Liberty
• “http://java.sun.com/xml/ns/j2ee” should be:
• “http://java.sun.com/xml/ns/javaee”
– Some open source frameworks, such as the Apache Object Relational Bridge,
make use of the internal undocumented and unsupported API. This is not
supported on Liberty
– OSGI application's WAB manifest file may require update(s)
• OSGI applications running on Liberty may require additional package imports to be
specified in the WAB MANIFEST.MF file which are not required for the same
application running on tWAS
• E.g. javax.naming, javax.sql and javax.xml.bind
88
89
90
– Faster installation
– More customer control
– Including z/OS
– Use remote or local repositories
91
91
Revision Date 06/2016
More optionally installable features
92
93
95
96
97
Support for IBM Java Developer Kit for IBM i, which is also referred to
as Classic JVM has been removed
– Use IBM Technology for Java on IBM i, which includes IBM Java Standard Edition
(SE) 32-bit and IBM Java SE 64-bit.
98
99
100
101
OSGi
Web 2.0 & Mobile SOA
Extend SOA and Java EE Build dynamic, modular, and easily Assemble Web services and
assets to the glass & mobile manageable applications SCA components into
devices via dynamic, rich
heterogeneous business
JSF, DOJO & mobile web
applications
applications RAD /
Refactor Code
RAD
SE
Refine Deploy
Debug Test
WAS
RAD
Team Productivity Problem Determination Enterprise Connectivity
• Integration with RTC • Code visualization - class, sequence • J2C (EIS) tools
• Collaborative debug and topic diagrams • CICS, and IMS Adapters
• Collaborative code • Static analysis (code review) • WebSphere Adapters for SAP,
analysis • Code coverage: optimize unit testing Siebel, JDE, Oracle, PeopleSoft
RAD SE
Programming Model Support WebSphere Integration
• Create, edit, validate applications: • WAS test servers: v6.1, v7.0, v8.0,
- Specs / Standards: remote support for WAS 6.0
• Java EE (Web, EJB, Web Services, JAX- - Publish, start/stop the server
RS…) • WAS Feature pack support
• SCA, OSGi, SIP, XML • Create and debug Jython and wsadmin
- Web (JSF, Dojo, JavaScript, Web 2.0) scripts
• Debug applications on WAS • Portal Tools & Portal Server support
• Database tools • Profile applications on WAS
• Integration with ClearCase SCM Adapter, ReqPro, • Find and deploy to WebSphere or Portal
instances in the IBM SBDT cloud
RUP
103
Key Capabilities:
IADT tools replace the
• Import and validate applications previously available IBM
• Edit deployment descriptors and Rational Application Developer
binding files Assembly and Deploy function
• Edit EAR-level configuration
(Enhanced EAR) Restricted to assembly and
• Create and debug Jython and deployment usage only
wsadmin scripts
• Deploy EJB and web services
• Deploy applications to local or
remote WAS v8 servers
• Debug applications on WAS v8
104
105
106
107
108
109
111
112
The code responsible for checking for the use of reserved keywords as EL variable identifiers was
enhanced, making the checking more strict. The variable checking code not only checks for reserved EL
keywords, but also Java reserved keywords
The preferred method of resolution is to modify the JSTL/EL code to eliminate the usage of the reserved
keywords as variable names. However, if this is not possible or practical, a custom JVM property
org.apache.el.parser.SKIP_IDENTIFIER_CHECK can be set to true on the WebSphere Application
Server JVM that will relax the variable identifier checks. The relaxed checking behavior is equivalent to
the behavior observed in WebSphere Application Server versions prior to version 8.0.
See http://www.ibm.com/support/docview.wss?uid=swg21642419
113
114
115
116
com.ibm.websphere.servlet.error.ServletErrorReport.getCause ( )
117
In general the Spring Framework can be made to work with WAS fairly easily,
see below reference for more details
There is a known conflict starting in WAS v8.0 when using Spring due to a
conflict with the JEE6 @Asynchronous annotation
– Customer code using the annotation-driven search method in the Spring configuration for
@Async annotation. @Async is the like functionality to @Asynchronous and the Spring code
searches for both annotations against the classpath. The solution is to remove annotation-
driven @Async searches by Spring.
– Customer code using Spring prototype beans. A prototype bean is like a template and every
time you want to use the template you have to create a hard copy that you actually use. When
you create that hard copy, Spring pours over the class to resolve all of the container
dependencies and resolve any annotations it’s responsible for. Spring uses a bean post-
processor for @Async and for every prototype that was hard-copied, Spring would run the
post-processor even if the class did not have the @Async (or @Asynchronous) annotation in
it. The @Async bean post-processor will increase method calls length. The solution is to stop
creating Spring prototype beans.
See http://www.ibm.com/developerworks/websphere/techjournal/0609_alcott/0609_alcott.html
118
119
120
121
122
123
124
The behavior now defaults to within the same host that the
request is currently executing on
– Properties are provided to revert behavior
126
127
• http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg21266535
129
The MQ topics and queues now default to read ahead under the
following conditions:
– When using the configuration migration tools to migrate from older WAS
versions
– When creating via wsadmin AdminConfig object
The expected default of "As for queue definition" or "As for topic
definition" is applied when:
– The administrative console is used to create a WebSphere MQ JMS
Queue or Topic object.
– When using the createWMQQueue and createWMQTopic commands,
with AdminTask
See
– http://www-01.ibm.com/support/docview.wss?uid=swg21448387
130
131
132
133
135
136
139
140
– java.util.List - Correct behavior when access a larger index than possible. Now throws an
IndexOutOfBoundsException instead of ArrayIndexOutOfBounds.
Relatively minor impacts – see the sun site for a complete list. 141 141
142
143
This page focuses on those interfaces in v7.0 that have been upgraded
to JEE5 with no alternative to using the older support in J2E 1.4. For
example:
– JSP has been upgraded to 2.1 from 2.0 – there is no way to run at JSP 2.0
level
– EJB has been upgraded to 3.0, however EJB 2.1 applications are still run at
2.1
– See this link for complete details of specification level options:
• http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websp
here.base.doc/info/aes/ae/rovr_specs.html
Portlet 2.0
– getProtocol for included servlets / JSPs no longer returns null, but ‘HTTP/1.1’
144
145
146
147
148
149
150
Problems can occur for applications older than v7.0 embed their own
Open Source implementations
– WebServices (AXIS based) and JAX-B (in Java6) is provided in WAS v7.0
– Other Open Source implementations are used with WAS as well
– Class conflicts can exist if those implementations are provided within the applications
Rendering differences
– Some fixes to resolve some previous problems with content-interweaving
between JSF and non-JSF tags
– Affects ViewHandler extenders, some custom scripting and some 3rd party
packages that now need to support JSF 1.2
• E.g. Tiles
– And maybe others like
• Tomahawk, Trinidad, IceFaces, Facelets, etc
JSTL Tag Evaluation
– In WAS6 and earlier, JSF evaluates JSTL tags after ScriptCollector
preRender method was executed. Whereas in WAS7, JSF evaluates
JSTL tags before ScriptCollector preRender method is invoked and fails
as backing bean property used in the JSTL tag is not populated by the
ScriptCollector preRender method.
• This change will require a redesign of your JSP pages to avoid the dependency on
execution order.
• See https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-
000014552754#77777777-0000-0000-0000-000014565034
152
JSF Portlets
– Higher memory consumption is reported, may result in larger sessions
153
2. Go to <profile_home>/properties/wsadmin.properties
– Edit and add com.ibm.websphere.application.migration.disabled=true
155
156
com.ibm.security.SAF.useEJBROLEAuthz com.ibm.security.SAF.authorization
com.ibm.websphere.rsadapter.DataDirectDataStoreHelper com.ibm.websphere.rsadapter.ConnectJDBCDataStoreHelper
com.ibm.websphere.rsadapter.MSSQLDataStoreHelper com.ibm.websphere.rsadapter.MicrosoftSQLDataStoreHelper
158
159
160
161
162
163
166
167
168
169
170
-P javadocsProductFeatureBean.active=”true” No equivalent
Application 8 16 17 18
DMgr n/a 11 17 17
172
173
174
175
Code analysis, complexity & correctness • AST ships with WAS, and provides
WebSphere: AST complete WebSphere support
Application trace &assembly,
WAS app creation, profiling • It is focused at a more basic (textual)
level than RAD, but provides support
deployment & unit test support to create & deploy WAS apps
Eclipse: Base & WTP
• Eclipse WTP (Web Tools Platform) is
Basic framework, Web a new open source project
177
178
Java Serialization
– Serialization is not compatible across JRE 1.4 and earlier releases – force
UUIDs as a general practice
Any new features in Java that result in new classes can cause
ambiguous references
– If these new classes match ones already defined in your program
179
181
182
If JSP's use any JDK 1.5 specific code, will get an error during
compile
– The default runtime compiler setting for JSPs is JDK 1.3
There are two solutions
1. (Ok) Application installation
The option to specify the JDK Source level when installing
2. (Better) Inside RAD
The Web Extension tab
In JSP Attributes table add “jdkSourceLevel jdkSourceLevel” as
name and 15 as value.
Adds an entry to Web Project/WEB-INF/ibm-web-ext.xmi
• E.g. <jspAttributes xmi:id="JSPAttribute_1" name="jdkSourceLevel"
value="15"/>
183
184
Security
– Removed com.ibm.websphere.security.CustomRegistry,
• Use: com.ibm.websphere.security.UserRegistry
– See InfoCenter for full details
• http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-
mp&topic=rmig_deprecationlist
186
– EJB1 and EJB2 are hosted in the same WebSphere Application Server
– HTTP request invokes EJB1:method1 outside of any transaction. (The Enterprise JavaBeans
Container for EJB1 creates a new transaction) EJB1:method1 invokes EJB2:method2.
(EJB2:method2 runs under the same transaction)
– In WebSphere Application Server V6.0 and earlier, the HTTP request receives the business
result of EJB1:method1, not a RemoteException.
• In each case the transaction is rolled back, but in V6.1 the HTTP request does not receive
the business results returned by EJB1:method1.
187
• Reference:
– http://www-1.ibm.com/support/docview.wss?uid=swg27007527
188
189
190
191
193
194
Application 8 16 19
DMgr n/a 11 17
196
197
Each Application Server, NodeAgent and DMgr are added to the default
CoreGroup by Migration tools
Performance concerns for larger cells
– v6.0 - recommend maximum around 50 objects per CoreGroup
– v6.1 and later - recommend maximum around 100 objects per CoreGroup
Mitigate by managing CoreGroups manually
– Each CoreGroup must contain at least one NodeAgent or DMgr process
• Requirement removed in v7.0 and later
– Put all members in the same cluster in the same CoreGroup
2 Processes 3 Processes 4 Processes 5 Processes
1 Connections 3 Connections 6 Connections 10 Connections
198
199
200
201
202
203
204
205
206
207
208
209
210
212
213
214
215
In v5.0 and v5.1 (J2EE 1.3) there was a restriction that you could
not create threads in EJBs
– Alternative is to use MessageDrivenBeans (MDBs)
216
217
Scripts that make use of MDB’s listener port retry count must be
changed to use maximum failed deliveries
218
219
220
222