Tuesday August 25, 2009
TOTD #98: Create a Metro JAX-WS Web service using GlassFish Tools Bundle for Eclipse
Now that you've installed GlassFish Tools Bundle for Eclipse 1.1, lets use this bundle to create a simple Metro/JAX-WS compliant Web service and deploy on GlassFish. These steps will work with either Eclipse 3.4.2 or 3.5 with WTP Java EE support.


public String sayHello(String name) {
return "Hello " + name + "!!";
}










Posted by Arun Gupta in webservices | Comments[3]
|
|
|
|
|
Thursday December 04, 2008
JavaFX 1.0 launched - access services hosted on embedded GlassFish
Today Sun announces the availability of Java
FX 1.0.
JavaFX 1.0 is a rich client platform for creating and delivering Rich
Internet Applications across all screens (desktop, browser,
and mobile) of your life. It consists of the following key components:
![]() |
|
![]() |
This blog shows how to create a simple JavaFX application using NetBeans IDE. The application plays a movie, allows the viewer to cast a vote if they liked it, and see aggregate response from other viewers. The application is developed using NetBeans 6.5, JavaFX 1.0 plugin, and coded using JavaFX Script. The voting engine is deployed as a RESTful Web service using Jersey on GlassFish. |



| Stage { title: "GlassFish Media Player" width: 625 height: 360 resizable: false scene: myScene } |
| var myScene: Scene = Scene { content: MediaView { fitWidth: 625 fitHeight: 360 mediaPlayer: bind myPlayer onMouseEntered: function( e: MouseEvent ):Void { println("mouse entered"); if (voted == false) { insert Vote{} into myScene.content; } else { insert Result{} into myScene.content; } } onMouseExited: function( e: MouseEvent ):Void { delete myScene.content[1] } } } |
| var myPlayer: MediaPlayer = MediaPlayer{ autoPlay: true media: bind myMedia }; |
| var myMedia: Media = Media { source: "http://sun.edgeboss.net/download/sun/media/1460825906/1460825906_2957290001_DayEarth-Bluray.flv" }; |
| class Vote extends CustomNode { override function create():Node { return Group { content: [ Rectangle { fill: Color.GREEN x: 185 y: 145 width: 243 height: 38 arcWidth: 20 arcHeight: 20 }, Text { x: 195 y: 170 fill: Color.WHITE font: Font { size: 18 } content: "I love it" }, Rectangle{ x: 191 y: 148 smooth: false width: 73 height: 32 fill: Color.TRANSPARENT onMouseClicked: function( e: MouseEvent ):Void { println("clicked I love it"); voted = true; wsClient.voteLoveIt(); delete myScene.content[1] } }, Text{ x: 305 y: 170 fill: Color.WHITE font: Font { size: 18 } content: "Not so great" }, Rectangle { x: 301 y: 148 smooth: false width: 118 height: 32 fill: Color.TRANSPARENT onMouseClicked: function( e: MouseEvent ):Void { voted = true; println("clicked Not so great"); wsClient.voteNotSoGreat(); delete myScene.content[1] } } ] } } }; |
| class Result extends CustomNode { override function create():Node { var resultPercent = wsClient.showResults(); var resultString = "{resultPercent} voters liked this clip"; return Group { content: [ Rectangle { fill: Color.BLUE x: 187 y: 145 width: 244 height: 38 arcWidth: 20 arcHeight: 20 onMouseClicked: function( e: MouseEvent ):Void { delete myScene.content[1] } }, Text { x: 199 y: 170 fill: Color.WHITE font: Font { size: 18 } content: resultString } ] } } }; |
| var voted = false; var wsClient = new WebserviceClient; |
| import javafx.scene.*; import javafx.scene.input.MouseEvent; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; |
| @javax.xml.bind.annotation.XmlRootElement public class VoteBean { public static enum VOTE { LOVE_IT, NOT_SO_GREAT }; public VOTE vote; public VoteBean() { vote = VOTE.LOVE_IT; } public VoteBean(VOTE vote) { this.vote = vote; } } |

| public
class WebserviceClient { private static com.sun.jersey.api.client.WebResource createWebResource() { return com.sun.jersey.api.client.Client.create(). resource("http://localhost:8080/movie-feedback-webapp/webresources/myresource"); } public static void voteLoveIt() { createWebResource().type("application/json"). post(new VoteBean(VoteBean.VOTE.LOVE_IT)); } public static void voteNotSoGreat() { createWebResource().type("application/json"). post(new VoteBean(VoteBean.VOTE.NOT_SO_GREAT)); } public static String showResults() { return createWebResource().get(String.class); } } |
| @javax.xml.bind.annotation.XmlRootElement public class VoteBean { public static enum VOTE { LOVE_IT, NOT_SO_GREAT }; public VOTE vote; public VoteBean() { vote = VOTE.LOVE_IT; } public VoteBean(VOTE vote) { this.vote = vote; } } |
| int loveIt; int noSoGreat; |
| @POST public void postOneVote(VoteBean bean) { if (bean.vote == VoteBean.VOTE.LOVE_IT) { loveIt++; } else { noSoGreat++; } System.out.println("In POST: " + bean.vote); } |
| @GET @Produces("text/plain") public String getOpinion() { if (loveIt == 0 && noSoGreat == 0) return "No votes cast yet!"; return (loveIt * 100) / (loveIt + noSoGreat) + "%"; } |
Posted by Arun Gupta in webservices | Comments[13]
|
|
|
|
|
Monday December 01, 2008
TOTD #58: Jersey and GlassFish - how to process POST requests ?
Lets extend the Jersey endpoint (TOTD#
56) and client (TOTD#
57) such that it can accept a POST request and then invoke it.
| @POST @Consumes("application/json") @Produces("application/json") public Greeting postIt(Greeting greeting) { System.out.println("In POST: " + greeting.greeting); return greeting; } |
| public void
testPost() { Greeting result = createResource(). type("application/json"). post(Greeting.class, new Greeting("yo!")); assertTrue(result.greeting.equals("yo!")); } |
| Running org.glassfish.samples.AppTest 1 * Out-bound request 1 > GET http://localhost:8080/helloworld-webapp/webresources/myresource 1 > 1 < 200 1 < X-Powered-By: Servlet/2.5 1 < Transfer-Encoding: chunked 1 < Content-Type: text/plain 1 < Server: GlassFish/v3 1 < Date: Tue, 25 Nov 2008 20:19:34 GMT 1 < <?xml version="1.0" encoding="UTF-8" standalone="yes"?><greeting><greeting>Hi there!</greeting></greeting> 1 * In-bound response 1 * Out-bound request 1 > POST http://localhost:8080/helloworld-webapp/webresources/myresource 1 > Content-Type: application/json 1 > {"greeting":"yo!"} 1 < 200 1 < X-Powered-By: Servlet/2.5 1 < Transfer-Encoding: chunked 1 < Content-Type: application/json 1 < Server: GlassFish/v3 1 < Date: Tue, 25 Nov 2008 20:19:34 GMT 1 < {"greeting":"yo!"} 1 * In-bound response Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.191 sec |
Posted by Arun Gupta in webservices | Comments[6]
|
|
|
|
|
Wednesday November 26, 2008
TOTD #57: Jersey Client API - simple and easy to use
TOTD
#56 explains how to create a RESTful Web service endpoint
using Jersey
and publish the resource using JSON representation. The blog entry
showed how the endpoint can be accessed from a Web browser. This Tip Of The Day explains how to
use Jersey
Client APIs to invoke the published endpoint.
Lets get started!
| package org.glassfish.samples; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { assertTrue(true); } } |
| private
WebResource createResource() { Client client = Client.create(); WebResource resource = client.resource("http://localhost:8080/helloworld-webapp/webresources/myresource"); return resource; } |
|
Greeting result = createResource().get(Greeting.class); assertTrue(result.greeting.equals("Hi there!")); |
| import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.WebResource; |
| ~/samples/jersey/helloworld-webapp >mvn test [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building helloworld-webapp Jersey Webapp [INFO] task-segment: [test] [INFO] ------------------------------------------------------------------------ [INFO] [resources:resources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:compile] [INFO] Nothing to compile - all classes are up to date [INFO] [resources:testResources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:testCompile] [INFO] Compiling 1 source file to /Users/arungupta/samples/jersey/helloworld-webapp/target/test-classes [INFO] [surefire:test] [INFO] Surefire report directory: /Users/arungupta/samples/jersey/helloworld-webapp/target/surefire-reports ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.glassfish.samples.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.587 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4 seconds [INFO] Finished at: Mon Nov 24 16:50:17 PST 2008 [INFO] Final Memory: 18M/43M [INFO] ------------------------------------------------------------------------ |
|
Client client = Client.create(); WebResource resource = client.resource("http://localhost:8080/helloworld-webapp/webresources/myresource"); resource.addFilter(new LoggingFilter()); return resource; |
| Running org.glassfish.samples.AppTest 1 * Out-bound request 1 > GET http://localhost:8080/helloworld-webapp/webresources/myresource 1 > 1 < 200 1 < X-Powered-By: Servlet/2.5 1 < Transfer-Encoding: chunked 1 < Content-Type: application/json 1 < Server: GlassFish/v3 1 < Date: Tue, 25 Nov 2008 07:07:51 GMT 1 < {"greeting":"Hi there!"} 1 * In-bound response Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.074 sec |
Posted by Arun Gupta in Finance | Comments[11]
|
|
|
|
|
Tuesday November 25, 2008
TOTD #56: Simple RESTful Web service using Jersey and Embeddable GlassFish - Text and JSON output
![]() |
Jersey is the open source, production quality, JAX-RS (JSR 311) Reference Implementation for building RESTful Web services in the GlassFish community. It also provides an API that allows developers to extend Jersey to suite their requirements. |
| ~/samples/jersey >mvn archetype:generate
-DarchetypeCatalog=http://download.java.net/maven/2 [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'archetype'. [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Default Project [INFO] task-segment: [archetype:generate] (aggregator-style) [INFO] ------------------------------------------------------------------------ [INFO] Preparing archetype:generate [INFO] No goals needed for project - skipping [INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'. [INFO] Setting property: velocimacro.messages.on => 'false'. [INFO] Setting property: resource.loader => 'classpath'. [INFO] Setting property: resource.manager.logwhenfound => 'false'. [INFO] [archetype:generate] [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) Choose archetype: 1: remote -> jersey-quickstart-grizzly (Archetype for creating a RESTful web application with Jersey and Grizzly) 2: remote -> jersey-quickstart-webapp (Archetype for creating a Jersey based RESTful web application WAR packaging) Choose a number: (1/2): 2 [INFO] snapshot com.sun.jersey.archetypes:jersey-quickstart-webapp:1.0.1-SNAPSHOT: checking for updates from jersey-quickstart-webapp-repo Define value for groupId: : org.glassfish.samples Define value for artifactId: : helloworld-webapp Define value for version: 1.0-SNAPSHOT: : Define value for package: : org.glassfish.samples Confirm properties configuration: groupId: org.glassfish.samples artifactId: helloworld-webapp version: 1.0-SNAPSHOT package: org.glassfish.samples Y: : [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating OldArchetype: jersey-quickstart-webapp:1.0.1-SNAPSHOT [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: org.glassfish.samples [INFO] Parameter: packageName, Value: org.glassfish.samples [INFO] Parameter: package, Value: org.glassfish.samples [INFO] Parameter: artifactId, Value: helloworld-webapp [INFO] Parameter: basedir, Value: /Users/arungupta/samples/jersey [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] ********************* End of debug info from resources from generated POM *********************** [INFO] OldArchetype created in dir: /Users/arungupta/samples/jersey/helloworld-webapp [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 21 seconds [INFO] Finished at: Mon Nov 24 14:09:27 PST 2008 [INFO] Final Memory: 12M/30M [INFO] ------------------------------------------------------------------------ |
|
<plugin> <groupId>org.glassfish</groupId> <artifactId>maven-glassfish-plugin</artifactId> </plugin> |
|
<pluginRepositories> <pluginRepository> <id>maven2-repository.dev.java.net</id> <name>Java.net Repository for Maven</name> <url>http://download.java.net/maven/2/</url> <layout>default</layout> </pluginRepository> <pluginRepository> <id>maven-repository.dev.java.net</id> <name>Java.net Maven 1 Repository (legacy)</name> <url>http://download.java.net/maven/1</url> <layout>legacy</layout> </pluginRepository> </pluginRepositories> |
|
<dependency> <groupId>org.glassfish.distributions</groupId> <artifactId>web-all</artifactId> <version>10.0-build-20080430</version> <scope>test</scope> </dependency> <dependency> <groupId>org.glassfish.embedded</groupId> <artifactId>gf-embedded-api</artifactId> <version>1.0-alpha-4</version> <scope>test</scope> </dependency> |
|
<dependency> <groupId>org.glassfish.distributions</groupId> <artifactId>web-all</artifactId> <version>10.0-SNAPSHOT</version> <scope>test</scope> </dependency> <dependency> <groupId>org.glassfish.embedded</groupId> <artifactId>glassfish-embedded-all</artifactId> <version>3.0-Prelude-SNAPSHOT</version> </dependency> |
|
<properties> <jersey-version>1.0</jersey-version> </properties> |
| package org.glassfish.samples; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; // The Java class will be hosted at the URI path "/helloworld" @Path("/myresource") public class MyResource { // The Java method will process HTTP GET requests @GET // The Java method will produce content identified by the MIME Media // type "text/plain" @Produces("text/plain") public String getIt() { return "Hi there!"; } } |
| ~/samples/jersey/helloworld-webapp >mvn glassfish:run [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'glassfish'. [INFO] ------------------------------------------------------------------------ [INFO] Building helloworld-webapp Jersey Webapp [INFO] task-segment: [glassfish:run] [INFO] ------------------------------------------------------------------------ [INFO] Preparing glassfish:run [INFO] [resources:resources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:compile] [INFO] Compiling 1 source file to /Users/arungupta/samples/jersey/helloworld-webapp/target/classes [INFO] [glassfish:run] Nov 24, 2008 2:36:05 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: HK2 initialized in 229 ms Nov 24, 2008 2:36:05 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: com.sun.enterprise.naming.impl.ServicesHookup@2470b02c Init done in 237 ms Nov 24, 2008 2:36:05 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: com.sun.enterprise.v3.server.Globals@13b3d787 Init done in 239 ms Nov 24, 2008 2:36:05 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: com.sun.enterprise.v3.server.SystemTasks@61bedd7d Init done in 244 ms Nov 24, 2008 2:36:05 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: com.sun.enterprise.v3.services.impl.HouseKeeper@2b9f7952 Init done in 245 ms Nov 24, 2008 2:36:05 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: com.sun.enterprise.v3.services.impl.CmdLineParamProcessor@5249d560 Init done in 248 ms JMXMP connector server URL = service:jmx:jmxmp://localhost:8888 Nov 24, 2008 2:36:05 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start INFO: Listening on port 8080 Nov 24, 2008 2:36:06 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: com.sun.enterprise.v3.services.impl.GrizzlyService@1baa56a2 startup done in 551 ms Nov 24, 2008 2:36:06 PM com.sun.enterprise.v3.services.impl.ApplicationLoaderService postConstruct INFO: loader service postConstruct started at 1227566166208 Nov 24, 2008 2:36:06 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: Application Loader startup done in 740 ms Nov 24, 2008 2:36:06 PM com.sun.enterprise.v3.server.AppServerStartup run INFO: Glassfish v3 started in 740 ms Nov 24, 2008 2:36:07 PM com.sun.enterprise.web.WebModuleContextConfig authenticatorConfig SEVERE: webModuleContextConfig.missingRealm Nov 24, 2008 2:36:07 PM com.sun.jersey.api.core.PackagesResourceConfig init INFO: Scanning for root resource and provider classes in the packages: org.glassfish.samples Nov 24, 2008 2:36:07 PM com.sun.jersey.api.core.PackagesResourceConfig init INFO: Root resource classes found: class org.glassfish.samples.MyResource Nov 24, 2008 2:36:07 PM com.sun.jersey.api.core.PackagesResourceConfig init INFO: Provider classes found: Hit ENTER for redeploy |


| package org.glassfish.samples; import javax.xml.bind.annotation.XmlRootElement; /** * @author arungupta */ @XmlRootElement public class Greeting { public String greeting; public Greeting() { } public Greeting(String greeting) { this.greeting = greeting; } } |
| //
@Produces("text/plain") @Produces("application/json") public Greeting getIt() { return new Greeting("Hi there!"); } |

| mvn clean package |
Posted by Arun Gupta in webservices | Comments[16]
|
|
|
|
|
Monday November 10, 2008
GlassFish @ Silicon Valley Code Camp 2008 - Trip Report
| 1400 registrations, 112 sessions, free pizza, a
barbecue on Saturday
night, raffles and lot more - that is Silicon Valley
Code Camp. Jitu, Jiandong, Jacob, and I presented on GlassFish at Silicon Valley Code Camp over the weekend. The event had higher attendance (close to 500) than last year and certainly is a great networking event for the local community. |
Friday October 17, 2008
SOAP and REST - both equally important to Sun
"Sun moving away from SOAP to embrace REST" is the misleading title
of an article recently published in SD
Times. The article provides a good introduction to JAX-RS and
Jersey. But I really wonder what motivated the author of this
article to use this title. This blog, hopefully, provides a better
context.
Jersey is
the Reference Implementation of Java API for RESTful Web Services
(JAX-RS, JSR
311)
and was released earlier this week. The headline indicates that Sun is
leaving SOAP and will support REST. The debate between
REST and SOAP is not new and there are religious camps on both sides
(even within Sun).
And that's completely understandable because each technology has its
own merits and demerits. But just because a new JSR aimed to make
RESTful Web services easy in
the Java platform is released, it does not mean Sun Microsystems is
leaving existing technology in trenches.
The addition of Jersey to Sun's software portfolio makes the Web
services stack from GlassFish community a more compelling and
comprehensive offering. This is in contrast to "moving away"
from SOAP as indicated by the title. As a matter of fact, Jersey will
be included as part of Metro
soon,
the Web Services stack of GlassFish. And then you can use JAX-WS (or
Metro) if you like to use SOAP or JAX-RS (or Jersey) if you prefer
RESTful Web
services. It's all about a offering choice to the community instead of
showing a direction.
Here are some data points for JAX-WS:
Posted by Arun Gupta in webservices | Comments[9]
|
|
|
|
|
Tuesday August 12, 2008
LOTD #1: Using Silverlight to access GlassFish Metro and JAX-WS Web service endpoints
Following TOTD
(Tip Of The Day) pattern, I'm
starting LOTD (Link
Of The
Day) series
today. These are light-weight entries with generally a single line
description and links to other
blogs/articles/tips/whitepapers/screencasts/etc.
Let's start with three recent entries on MSDN that describe how to
invoke Metro
and JAX-WS
Web service endpoints from Microsoft
Silverlight and .NET:
Posted by Arun Gupta in webservices | Comments[2]
|
|
|
|
|
Thursday July 31, 2008
Why GlassFish Metro over Axis ?
Metro (Web
services stack from GlassFish)
is kicking strong these days - here are two instances!
Posted by Arun Gupta in webservices | Comments[0]
|
|
|
|
|
Thursday July 10, 2008
Getting Started with GlassFish in IntelliJ IDEA
IntelliJ IDEA
7.0.x include plugins
that provide support for configuring GlassFish.
This blog provides clear instructions on how to get started by
developing and deploying a JSP, Servlet and Web services using
GlassFish in IntelliJ. The instructions are using IntelliJ 7.0.3 Build
#7757 (with no additional plugins).


















|
java.io.PrintWriter out = response.getWriter(); try { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet NewServlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet NewServlet at " + request.getContextPath () + "</h1>"); out.println("</body>"); out.println("</html>"); } finally { out.close(); } |
| doGet(request, response); |







|
client.HelloWorld service = new
client.HelloWorldService().getHelloWorldPort(); //invoke business method System.out.println(service.sayHelloWorldFrom("Duke")); |

Posted by Arun Gupta in webservices | Comments[11]
|
|
|
|
|
Saturday April 05, 2008
GlassFish Metro Web Services Training Course
Interested
in understanding the nitty gritty details of how Metro in GlassFish
provides Secure, Reliable, Transactional and .NET 3.0 interoperable Web
services ? You can certainly read all about it in Metro Users Guide,
post questions to Metro
Forum, subscribe to Metro Blogs
or The
Aquarium.
![]() |
But now there is a new 5 hours Web-based course, WTMB-SAS-1500,
from Sun Training.
The course content is organized in 5 different modules:
|
Posted by Arun Gupta in webservices | Comments[7]
|
|
|
|
|
Tuesday April 01, 2008
BizTalk Services SDK, GlassFish and Metro
Microsoft BizTalk R11
CTP was released last week and now contains a sample that is
based on GlassFish,
Metro and NetBeans. Even though
today is April 1st, this is not intended to be an April
Fool's Day joke. Read more about the sample in this blog
entry. The relevant bits from the entry are quoted below:
The sample shows how to
use the BizTalk Services Identity Security Token Service (STS) to
secure the communication between a Java client and a Java service
providing federated authentication and claims-based authorization. The
sample, which you can find in
./Samples/OtherPlatforms/StandaloneAccessControl/JavaEE5 once you
installed the SDK, is a pure
Java sample not requiring any of our bits on either the
service or client side. The interaction
with our services is purely happening on the wire.
The Metro team over at
Sun Microsystems has made
a very significant contribution to making this all work.
Before we started making changes to accommodate Java, there would have
been very little hope for anyone to get this seemingly simple scenario
to work. We had to make quite a few changes even though our service did
follow the specs.
As a result of this
collaboration, Metro
1.2 is going to
be a better and more interoperable release for the Sun's customers and
the greater Java community and BizTalk Services as well as
our future identity products will be better and more interoperable,
too. Win-Win. Thank you,
Sun.
Thank you Microsoft for adding this sample to the BizTalk Services SDK.
Metro team demonstrated a similar
demo at JavaOne
2007. The demo shows how an Excel 2007 client can invoke a
secure and reliable endpoint deployed on GlassFish. The entire source
code for the sample, along with instructions to build, are available here.
This is possible today because of our participation in previous 6
plugfests (Mar
2008, Nov
2007, Jul
2007, Oct
2006, Mar
2006, Nov
2005) hosted by Microsoft.
Technorati: glassfish netbeans
metro webservices
biztalk
microsoft
interoperability
Posted by Arun Gupta in webservices | Comments[3]
|
|
|
|
|
Monday March 31, 2008
Slides for St Louis & Kansas City Developer Update Meetings
I presented on GlassFish
and Metro
in Developer Update meetings in St
Louis & Kansas
City. The slides are available here.
The demos shown in the talk can be seen at:
| Event | City | Date |
| The Server Side Java Symposium | Las Vegas | Mar 26, 2008 |
| Ajax World East 2008 Day 2, Day 1 | New York | Mar 18-19, 2008 |
| SD West 2008 | Santa Clara | Mar 6, 2008 |
| GlassFish Day | Hyderabad, India | Feb 29, 2008 |
| Sun Tech Days - Day 2, Talent Show, Day 1 | Hyderabad, India | Feb 27-28, 2008 |
| acts_as conference - Day 2, Day 1 | Orlando | Feb 8-9, 2008 |
| South Bay Ruby Meetup | Mountain View | Jan 30, 2008 |
Posted by Arun Gupta in webservices | Comments[3]
|
|
|
|
|
Tuesday March 25, 2008
Rails powered by GlassFish & jMaki @ The Server Side Java Symposium, Las Vegas - Mar 26, 2008
If you want to learn more about:
| Date: | Mar 26, 2008 |
| Time: | 2:30 - 3:30pm |
| Track: | Language & Coding |
| Title: | Rails powered by GlassFish & jMaki |
Posted by Arun Gupta in web2.0 | Comments[1]
|
|
|
|
|
Sunday March 16, 2008
Travel Schedule - Next 5 weeks
Here is my travel schedule for next 5 weeks:
| Mar 17-21 | Ajax World, New York | Web Application Development using jMaki |
| Mar 25-26 | The Server Side Java Symposium, Las Vegas | Rails powered by GlassFish & jMaki |
| Mar 27 | Developer Update, St Louis Westport DoubleTree, FREE event | Open Source Web Services stack in GlassFish |
| Mar 28 | Developer Update, Kansas City, FREE event | Rich Internet Applications and GlassFish |
| Apr 16-19 | FISL, Brazil | Web 2.0 Application Development
using jMaki and Asynchronous Ajax for Revolutionary Web Applications |
Posted by Arun Gupta in General | Comments[2]
|
|
|
|
|
Today's Page Hits: 4036
Total # blog entries: 994
| « November 2009 | ||||||
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
1 | 2 | 4 | 6 | 7 | ||
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | |||||
| Today | ||||||