Showing posts with label weblogic. Show all posts
Showing posts with label weblogic. Show all posts

Tuesday, April 6, 2010

Faster protoyping with Rails webservices

Well, I just spent about a 1.5 days tweaking/trying to get a VERY simple Maven/CXF/Spring project deployed on WebLogic 10.3.2 (the web service part wasn't the issue... this could have been deployed on Jetty/Tomcat in minutes) - finally got it deploying to WLS from Eclipse (but not JDeveloper of course, but that's another story)

For kicks, I thought I'd see what it would take to set up a webservice in Ruby/Rails. (about 10 mins for the impatient)

There used to be a gem called actionwebservice, but it looks like it's been removed from Rails so install datanoise-actionwebservice instead.
sudo gem install datanoise-actionwebservice --source http://gems.github.com

Now, set up a quick rails app and configure the environment.
rails ws-test

Edit the config/environment.rb file:
1) Find the load_paths section and add:
config.load_paths += %W( #{RAILS_ROOT}/app/apis )

2) Find the config.gem section and add:
config.gem 'datanoise-actionwebservice', :lib => 'actionwebservice',
:version => '2.3.2'

Ok, now lets take advantage of that config work we just did...
Create the app/apis directory that we referenced in the environment.rb file
mkdir app/apis

Create the app/apis/hello_world_api.rb file
class HelloWorldApi < ActionWebService::API::Base
api_method :hello_message, :expects => [{:name=>:string}], :returns => [:string]
end

Create a controller in app/controller/hello_world_controller.rb
class HelloWorldController < ApplicationController

web_service_api HelloWorldApi
web_service_dispatching_mode :direct
wsdl_service_name 'hello_message'
web_service_scaffold :invoke

def hello_message( name )
return "Hello #{name}"
end

end

Finally, fire it up...
script/server

And browse to http://localhost:3000/hello_world/invoke for a spiffy web page or http://localhost:3000/hello_world/wsdl for the WSDL.

UPDATE (4/7/2010): You can also use script/generate on webservices
script/generate web_service HelloWorld
create app/services/
exists app/controllers/
exists test/functional/
create app/services/hello_world_api.rb
create app/controllers/hello_world_controller.rb
create test/functional/hello_world_api_test.rb

Friday, April 2, 2010

Insufficient Disk space! WebLogic 10.3.2.0 running on Mac OSX

Note: First read my post about getting JDeveloper installed - you still need to fake out the Oracle installer so it realizes you have a JDK install

Go to Oracle.com and get the Oracle WebLogic Server 11gR1 (10.3.2) - Package Installer - generic

Warning: If you double-click on the jar, you'll get a few screens in and then it will complain (completely incorrectly) about "Insufficient disk space!" regardless of how much free space you have on your machine.

The workaround is to pull up a terminal window, go to the directory holding the wls1032_generic.jar file and execute:

java -Dos.name=unix -XX:MaxPermSize=512m -Xmx1024m -jar wls1032_generic.jar

Seems the installer can't determine disk space correctly without knowing it's an unix system... should install successfully after that.

If you don't increase the perm gen space, you'll hit: "Exception in thread "runScript" java.lang.OutOfMemoryError: PermGen space"